#include <iostream>
#include <cstdio>
#include <vector>
#include "train.h"
using namespace std;
const int MAX_NOEUDS = (5000);
vector <int> Remonte[MAX_NOEUDS];
bool DP[MAX_NOEUDS];
bool Arezou[MAX_NOEUDS];
bool Charge[MAX_NOEUDS];
bool Calc[MAX_NOEUDS];
bool Pris[MAX_NOEUDS];
int Deg[MAX_NOEUDS];
int File[MAX_NOEUDS];
int deb = 0, fin = 0;
int nbNoeuds, nbAretes;
void Reset() {
deb = 0, fin = 0;
for (int i = 0; i < nbNoeuds; i ++)
{
Calc[i] = false;
Pris[i] = false;
Deg[i] = 0;
}
for (int i = 0; i < nbNoeuds; i ++)
{
for (int dest : Remonte[i])
Deg[dest] ++;
}
return;
}
void Add(int noeud) {
if (Calc[noeud])
return;
Calc[noeud] = true;
for (int dest : Remonte[noeud])
{
if (!Pris[dest] && Arezou[dest])
{
File[fin ++] = dest;
Pris[dest] = true;
}
if (!Pris[dest] && !Arezou[dest] && -- Deg[dest] == 0)
{
File[fin ++] = dest;
Pris[dest] = true;
}
}
return;
}
void Bfs() {
Reset();
for (int i = 0; i < nbNoeuds; i ++)
{
if (DP[i] && Charge[i])
Add(i);
DP[i] = false;
}
while (deb < fin)
{
Add(File[deb ++]);
}
for (int i = 0; i < nbNoeuds; i ++)
{
if (Pris[i])
DP[i] = true;
}
return;
}
vector<int> who_wins(vector<int> Proprio, vector<int> Energie, vector<int> Left, vector<int> Right) {
nbNoeuds = Proprio.size();
nbAretes = Left.size();
for (int i = 0; i < nbNoeuds; i ++)
{
Arezou[i] = Proprio[i];
Charge[i] = Energie[i];
if (Charge[i])
DP[i] = true;
}
for (int i = 0; i < nbAretes; i ++)
{
Remonte[Right[i]].push_back(Left[i]);
}
for (int i = 0; i < nbNoeuds; i ++)
{
Bfs();
}
vector <int> Ans;
for (int i = 0; i < nbNoeuds; i ++)
{
Ans.push_back(DP[i]);
}
return Ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
728 ms |
940 KB |
Output is correct |
2 |
Correct |
730 ms |
1012 KB |
Output is correct |
3 |
Correct |
720 ms |
896 KB |
Output is correct |
4 |
Correct |
685 ms |
876 KB |
Output is correct |
5 |
Correct |
732 ms |
876 KB |
Output is correct |
6 |
Correct |
734 ms |
864 KB |
Output is correct |
7 |
Correct |
459 ms |
932 KB |
Output is correct |
8 |
Correct |
948 ms |
972 KB |
Output is correct |
9 |
Correct |
784 ms |
852 KB |
Output is correct |
10 |
Correct |
734 ms |
844 KB |
Output is correct |
11 |
Correct |
673 ms |
844 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
2 |
Correct |
1 ms |
332 KB |
Output is correct |
3 |
Correct |
1 ms |
332 KB |
Output is correct |
4 |
Correct |
1 ms |
332 KB |
Output is correct |
5 |
Correct |
1 ms |
332 KB |
Output is correct |
6 |
Correct |
1 ms |
332 KB |
Output is correct |
7 |
Correct |
1 ms |
332 KB |
Output is correct |
8 |
Correct |
1 ms |
420 KB |
Output is correct |
9 |
Correct |
1 ms |
332 KB |
Output is correct |
10 |
Correct |
1 ms |
332 KB |
Output is correct |
11 |
Correct |
1 ms |
332 KB |
Output is correct |
12 |
Correct |
1 ms |
420 KB |
Output is correct |
13 |
Correct |
1 ms |
332 KB |
Output is correct |
14 |
Correct |
1 ms |
416 KB |
Output is correct |
15 |
Correct |
1 ms |
332 KB |
Output is correct |
16 |
Correct |
1 ms |
332 KB |
Output is correct |
17 |
Correct |
1 ms |
332 KB |
Output is correct |
18 |
Correct |
1 ms |
332 KB |
Output is correct |
19 |
Correct |
1 ms |
332 KB |
Output is correct |
20 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
604 ms |
1292 KB |
Output is correct |
2 |
Correct |
659 ms |
1352 KB |
Output is correct |
3 |
Correct |
683 ms |
1272 KB |
Output is correct |
4 |
Correct |
1520 ms |
1264 KB |
Output is correct |
5 |
Correct |
1295 ms |
1268 KB |
Output is correct |
6 |
Correct |
579 ms |
1316 KB |
Output is correct |
7 |
Correct |
1599 ms |
1256 KB |
Output is correct |
8 |
Correct |
1089 ms |
1256 KB |
Output is correct |
9 |
Correct |
555 ms |
1196 KB |
Output is correct |
10 |
Correct |
1357 ms |
1228 KB |
Output is correct |
11 |
Correct |
1230 ms |
1204 KB |
Output is correct |
12 |
Correct |
519 ms |
1156 KB |
Output is correct |
13 |
Correct |
1514 ms |
1268 KB |
Output is correct |
14 |
Correct |
1537 ms |
1268 KB |
Output is correct |
15 |
Correct |
1554 ms |
1272 KB |
Output is correct |
16 |
Correct |
1475 ms |
1272 KB |
Output is correct |
17 |
Correct |
1456 ms |
1268 KB |
Output is correct |
18 |
Correct |
549 ms |
956 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1404 ms |
1152 KB |
Output is correct |
2 |
Correct |
1566 ms |
1156 KB |
Output is correct |
3 |
Correct |
634 ms |
1232 KB |
Output is correct |
4 |
Correct |
563 ms |
1244 KB |
Output is correct |
5 |
Correct |
1332 ms |
1248 KB |
Output is correct |
6 |
Correct |
1698 ms |
1228 KB |
Output is correct |
7 |
Correct |
1734 ms |
1360 KB |
Output is correct |
8 |
Correct |
564 ms |
1200 KB |
Output is correct |
9 |
Correct |
1410 ms |
1180 KB |
Output is correct |
10 |
Correct |
1686 ms |
1272 KB |
Output is correct |
11 |
Correct |
1745 ms |
1268 KB |
Output is correct |
12 |
Correct |
1824 ms |
1268 KB |
Output is correct |
13 |
Correct |
1596 ms |
1244 KB |
Output is correct |
14 |
Correct |
1684 ms |
1192 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1646 ms |
1312 KB |
Output is correct |
2 |
Execution timed out |
2008 ms |
1284 KB |
Time limit exceeded |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
728 ms |
940 KB |
Output is correct |
2 |
Correct |
730 ms |
1012 KB |
Output is correct |
3 |
Correct |
720 ms |
896 KB |
Output is correct |
4 |
Correct |
685 ms |
876 KB |
Output is correct |
5 |
Correct |
732 ms |
876 KB |
Output is correct |
6 |
Correct |
734 ms |
864 KB |
Output is correct |
7 |
Correct |
459 ms |
932 KB |
Output is correct |
8 |
Correct |
948 ms |
972 KB |
Output is correct |
9 |
Correct |
784 ms |
852 KB |
Output is correct |
10 |
Correct |
734 ms |
844 KB |
Output is correct |
11 |
Correct |
673 ms |
844 KB |
Output is correct |
12 |
Correct |
1 ms |
332 KB |
Output is correct |
13 |
Correct |
1 ms |
332 KB |
Output is correct |
14 |
Correct |
1 ms |
332 KB |
Output is correct |
15 |
Correct |
1 ms |
332 KB |
Output is correct |
16 |
Correct |
1 ms |
332 KB |
Output is correct |
17 |
Correct |
1 ms |
332 KB |
Output is correct |
18 |
Correct |
1 ms |
332 KB |
Output is correct |
19 |
Correct |
1 ms |
420 KB |
Output is correct |
20 |
Correct |
1 ms |
332 KB |
Output is correct |
21 |
Correct |
1 ms |
332 KB |
Output is correct |
22 |
Correct |
1 ms |
332 KB |
Output is correct |
23 |
Correct |
1 ms |
420 KB |
Output is correct |
24 |
Correct |
1 ms |
332 KB |
Output is correct |
25 |
Correct |
1 ms |
416 KB |
Output is correct |
26 |
Correct |
1 ms |
332 KB |
Output is correct |
27 |
Correct |
1 ms |
332 KB |
Output is correct |
28 |
Correct |
1 ms |
332 KB |
Output is correct |
29 |
Correct |
1 ms |
332 KB |
Output is correct |
30 |
Correct |
1 ms |
332 KB |
Output is correct |
31 |
Correct |
1 ms |
332 KB |
Output is correct |
32 |
Correct |
604 ms |
1292 KB |
Output is correct |
33 |
Correct |
659 ms |
1352 KB |
Output is correct |
34 |
Correct |
683 ms |
1272 KB |
Output is correct |
35 |
Correct |
1520 ms |
1264 KB |
Output is correct |
36 |
Correct |
1295 ms |
1268 KB |
Output is correct |
37 |
Correct |
579 ms |
1316 KB |
Output is correct |
38 |
Correct |
1599 ms |
1256 KB |
Output is correct |
39 |
Correct |
1089 ms |
1256 KB |
Output is correct |
40 |
Correct |
555 ms |
1196 KB |
Output is correct |
41 |
Correct |
1357 ms |
1228 KB |
Output is correct |
42 |
Correct |
1230 ms |
1204 KB |
Output is correct |
43 |
Correct |
519 ms |
1156 KB |
Output is correct |
44 |
Correct |
1514 ms |
1268 KB |
Output is correct |
45 |
Correct |
1537 ms |
1268 KB |
Output is correct |
46 |
Correct |
1554 ms |
1272 KB |
Output is correct |
47 |
Correct |
1475 ms |
1272 KB |
Output is correct |
48 |
Correct |
1456 ms |
1268 KB |
Output is correct |
49 |
Correct |
549 ms |
956 KB |
Output is correct |
50 |
Correct |
1404 ms |
1152 KB |
Output is correct |
51 |
Correct |
1566 ms |
1156 KB |
Output is correct |
52 |
Correct |
634 ms |
1232 KB |
Output is correct |
53 |
Correct |
563 ms |
1244 KB |
Output is correct |
54 |
Correct |
1332 ms |
1248 KB |
Output is correct |
55 |
Correct |
1698 ms |
1228 KB |
Output is correct |
56 |
Correct |
1734 ms |
1360 KB |
Output is correct |
57 |
Correct |
564 ms |
1200 KB |
Output is correct |
58 |
Correct |
1410 ms |
1180 KB |
Output is correct |
59 |
Correct |
1686 ms |
1272 KB |
Output is correct |
60 |
Correct |
1745 ms |
1268 KB |
Output is correct |
61 |
Correct |
1824 ms |
1268 KB |
Output is correct |
62 |
Correct |
1596 ms |
1244 KB |
Output is correct |
63 |
Correct |
1684 ms |
1192 KB |
Output is correct |
64 |
Correct |
1646 ms |
1312 KB |
Output is correct |
65 |
Execution timed out |
2008 ms |
1284 KB |
Time limit exceeded |
66 |
Halted |
0 ms |
0 KB |
- |