-
Notifications
You must be signed in to change notification settings - Fork 0
/
Solution (2).cpp
62 lines (59 loc) · 2.18 KB
/
Solution (2).cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include<bits/stdc++.h>
#define xxxxxxxxxxxxxxx first
#define xxxxxxxxxxxxxxxx second
#define xxxxxxxxxxxxxxxxx push_back
using namespace std;
long long xx[100009], xxx[100009], xxxx[100009], xxxxx[100009];
vector<int> xxxxxx[100009];
queue<int> xxxxxxx;
void solve()
{
long long xxxxxxxx, xxxxxxxxx, xxxxxxxxxx, xxxxxxxxxxx, xxxxxxxxxxxx = 0;
cin >> xxxxxxxx;
for (int xxxxxxxxxxxxx = 0; xxxxxxxxxxxxx <= xxxxxxxx; xxxxxxxxxxxxx++)
{
xx[xxxxxxxxxxxxx] = xxx[xxxxxxxxxxxxx] = xxxx[xxxxxxxxxxxxx] = xxxxx[xxxxxxxxxxxxx] = 0;
xxxxxx[xxxxxxxxxxxxx].clear();
}
for (int xxxxxxxxxxxxx = 1; xxxxxxxxxxxxx <= xxxxxxxx; xxxxxxxxxxxxx++) cin >> xx[xxxxxxxxxxxxx];
for (int xxxxxxxxxxxxx = 1; xxxxxxxxxxxxx <= xxxxxxxx; xxxxxxxxxxxxx++)
{
cin >> xxxxxxxxx;
xxx[xxxxxxxxxxxxx] = xxxxxxxxx;
xxxxxx[xxxxxxxxx].xxxxxxxxxxxxxxxxx(xxxxxxxxxxxxx);
xxxxx[xxxxxxxxx]++;
}
for (int xxxxxxxxxxxxx = 0; xxxxxxxxxxxxx <= xxxxxxxx; xxxxxxxxxxxxx++) if (xxxxx[xxxxxxxxxxxxx] == 0) xxxxxxx.push(xxxxxxxxxxxxx);
while (!xxxxxxx.empty())
{
xxxxxxxxx = xxxxxxx.front();
xxxxxxx.pop();
xxxxxxxxxx = 1 << 30;
for (int xxxxxxxxxxxxx = 0; xxxxxxxxxxxxx < xxxxxx[xxxxxxxxx].size(); xxxxxxxxxxxxx++)
{
if (xxxx[xxxxxx[xxxxxxxxx][xxxxxxxxxxxxx]] < xxxxxxxxxx)
{
xxxxxxxxxx = xxxx[xxxxxx[xxxxxxxxx][xxxxxxxxxxxxx]];
xxxxxxxxxxx = xxxxxxxxxxxxx;
}
}
if (xxxxxxxxxx == 1 << 30) xxxxxxxxxx = 0;
for (int xxxxxxxxxxxxx = 0; xxxxxxxxxxxxx < xxxxxx[xxxxxxxxx].size(); xxxxxxxxxxxxx++) if (xxxxxxxxxxxxx != xxxxxxxxxxx) xxxxxxxxxxxx += xxxx[xxxxxx[xxxxxxxxx][xxxxxxxxxxxxx]];
xxxx[xxxxxxxxx] = max(xx[xxxxxxxxx], xxxxxxxxxx);
xxxxx[xxx[xxxxxxxxx]]--;
if (xxxxx[xxx[xxxxxxxxx]] == 0) xxxxxxx.push(xxx[xxxxxxxxx]);
}
cout << xxxxxxxxxxxx + xxxx[0] << "\n";
return;
}
int main()
{
int xxxxxxxxxxxxxx;
cin >> xxxxxxxxxxxxxx;
for (int xxxxxxxxxxxxx = 1; xxxxxxxxxxxxx <= xxxxxxxxxxxxxx; xxxxxxxxxxxxx++)
{
cout << "Case #" << xxxxxxxxxxxxx << ": ";
solve();
}
return 0;
}