題目連結: https://zerojudge.tw/ShowProblem?problemid=a821

# 內容

MPM 是一個近年非常風行的即時戰略遊戲,吸引全世界眾多玩家投入。多塔公司為了推銷遊戲,舉辦了世界大賽角逐最強隊伍的頭銜。每支隊伍會不斷與隨機的對手競賽,可能會呵某些對手比賽多次,也可能一直都沒對決上。多塔公司希望將最強隊伍頭銜頒給 曾擊敗所有其他隊伍且從未被任何隊伍擊敗的隊伍。請撰寫程式找到那隻隊伍。

# 解題思路

將每一隊擊數的隊伍以 set 記錄,輸出擊數隊伍數為 n-1,且沒有被擊數的隊伍

# 程式碼

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, m;
    while (scanf("%d %d", &n, &m) == 2) {
	char s1[128], s2[128];
	map<string, set<string> > P;
	map<string, int> Q;
	for (int i = 0; i < m; i++) {
  	    scanf("%s %s", s1, s2);
	    Q[s2] = 1;
	    P[s1].insert(s2);
	}
	for (auto &x : P)
	    if (x.second.size() == n-1 && Q[x.first] == 0)				
		printf("%s\n", x.first.c_str());
    }
	return 0;
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay