22522023-01-05 23:50:51kohumarkUtazás (40)cpp11Időlimit túllépés 0/40400ms4908 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+1];
    for(int i=0; i<n+1; 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/03ms1832 KiB
2Időlimit túllépés0/0400ms2464 KiB
3Hibás válasz0/12ms2120 KiB
4Hibás válasz0/22ms2200 KiB
5Hibás válasz0/12ms2328 KiB
6Hibás válasz0/23ms2568 KiB
7Hibás válasz0/216ms2936 KiB
8Hibás válasz0/2134ms3532 KiB
9Hibás válasz0/216ms3140 KiB
10Hibás válasz0/257ms3420 KiB
11Időlimit túllépés0/2370ms2748 KiB
12Időlimit túllépés0/3356ms3000 KiB
13Időlimit túllépés0/3365ms3308 KiB
14Időlimit túllépés0/3358ms3340 KiB
15Időlimit túllépés0/3356ms3536 KiB
16Időlimit túllépés0/3349ms3604 KiB
17Időlimit túllépés0/3365ms4244 KiB
18Időlimit túllépés0/3344ms4908 KiB
19Időlimit túllépés0/3365ms4776 KiB