22512023-01-05 23:46:34kohumarkUtazás (40)cpp11Időlimit túllépés 0/40400ms4760 KiB
// Example program
#include <bits/stdc++.h>
#define speed cin.tie(0);ios::sync_with_stdio(0)
using namespace std;

int main()
{
    speed;
    int n, m, q;
    cin >> n >> m >> q;
    int ind[q]; for(int i=0; i<q; i++){
	cin >> ind[i];
	ind[i]--;
    }
    
    pair<int,int> jaratok[m]; int be[n];
    for(int i=0; i<n; i++) be[i]=0;
    for(int i=0; i<m; i++){
        cin >> jaratok[i].first >> jaratok[i].second;
        jaratok[i].first--; jaratok[i].second--;
        be[jaratok[i].second]++;
    }
    
    queue<int> alap; vector<int> vegso;
    for(int i=0; i<n; i++) if(be[i]==0) alap.push(i);

    while(!alap.empty()){
	int next=alap.front();
	alap.pop();
	for(int i=0; i<m; i++){
		if(jaratok[i].first == next){
			be[jaratok[i].second]--;
			if(be[jaratok[i].second]==0) alap.push(jaratok[i].second);
		}
	}
	vegso.push_back(next);
    }

    bool win[n];
    for(int i=0; i<n; i++) win[i]=false;
    for(int i=n-1; i>-1; i--){
	for(int j=0; j<m; j++){
		if(jaratok[j].first==vegso[i]) win[vegso[i]] |= ! win[jaratok[j].second];
	}
    }

    for(int i=0; i<q; i++) cout << (win[i] ? "B\n" : "A\n");
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Elfogadva0/03ms1700 KiB
2Időlimit túllépés0/0400ms2232 KiB
3Hibás válasz0/12ms2192 KiB
4Hibás válasz0/22ms2168 KiB
5Hibás válasz0/12ms2344 KiB
6Hibás válasz0/22ms2556 KiB
7Hibás válasz0/213ms2684 KiB
8Hibás válasz0/2100ms2912 KiB
9Hibás válasz0/213ms2676 KiB
10Hibás válasz0/243ms2980 KiB
11Hibás válasz0/2300ms3888 KiB
12Időlimit túllépés0/3358ms2916 KiB
13Időlimit túllépés0/3356ms2844 KiB
14Időlimit túllépés0/3381ms2860 KiB
15Időlimit túllépés0/3356ms2944 KiB
16Időlimit túllépés0/3370ms3256 KiB
17Időlimit túllépés0/3361ms3640 KiB
18Időlimit túllépés0/3361ms4424 KiB
19Időlimit túllépés0/3361ms4760 KiB