# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
351990 | 2021-01-20T10:39:08 Z | minoum | Tug of War (BOI15_tug) | C++17 | 1364 ms | 8812 KB |
#include<bits/stdc++.h> using namespace std; typedef long long int ll; const int MAXN = 6e4; int n, k, s[MAXN], l[MAXN], r[MAXN], ss = 0, s1 = 0, dd[MAXN], ww[2]; vector <int> adj[MAXN]; //id,u bool deadh[MAXN], deadt[MAXN]; inline bool ch(){ set <pair<int,int>> deg; for(int i = 0; i < 2*n; i++){ dd[i] = (int)adj[i].size(); deg.insert({dd[i], i}); } while(!deg.empty()){ if(deg.begin()->first > 1) break; if(deg.begin()->first <= 0) return false; int t = deg.begin()->second, h = -1, v2; deg.erase(*deg.begin()); for(auto i: adj[t]) if(!deadh[i]){ h = i; v2 = ((t<n)?r[h]:l[h]); break; } s1 += (t<n?s[h]:0); deadt[t] = true; deadh[h] = true; v2 = (t<n?r[h]:l[h]); if(!deadt[v2]){ deg.erase({dd[v2],v2}); dd[v2]--; deg.insert({dd[v2], v2}); } } return true; } inline void dfs(int v){ int hh = 0, v2; while(!deadt[v]){ for(auto i: adj[v]) if(!deadh[i]){ int h = i; ww[hh] += s[h]; deadh[h] = true; deadt[v] = true; v2 = ((v<n)?r[h]:l[h]); break; } hh = 1-hh; v = v2; } return; } int main() { // ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); // cin >> n >> k; scanf("%d",&n); scanf("%d", &k); for(int i = 0; i < 2*n; i++){ //cin >> l[i] >> r[i] >> s[i]; scanf("%d", l+i); scanf("%d", r+i); scanf("%d", s+i); l[i]--; r[i]--; r[i] += n; ss += s[i]; adj[l[i]].push_back(i); adj[r[i]].push_back(i); } // int b = (ss-k+1)/2, e = (ss+k)/2; b = max(b, 0); bool check = ch(); if(!check){ // cout << "NO" << '\n'; printf("NO"); return 0; } if(ss-(2*s1) <= k && -ss+(2*s1) <= k){ //cout << "YES" << '\n'; printf("YES"); return 0; } vector <pair<int,int>> w; for(int i = 0; i < 2*n; i++) if(!deadt[i]){ ww[0] = ww[1] = 0; dfs(i); w.push_back({ww[0],ww[1]}); } bitset <MAXN*10> bt; bt[s1] = 1; for(auto i: w) bt = (bt<<i.first) | (bt<<i.second); for(int i = 0; i < ss; i++) if(bt[i] && ss-(2*i) <= k && -ss+(2*i) <= k){ //cout << "YES" << '\n'; printf("YES"); return 0; } // cout << "NO" << '\n'; printf("NO"); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 2028 KB | Output is correct |
2 | Correct | 2 ms | 2028 KB | Output is correct |
3 | Correct | 2 ms | 2028 KB | Output is correct |
4 | Correct | 2 ms | 2028 KB | Output is correct |
5 | Correct | 2 ms | 2028 KB | Output is correct |
6 | Correct | 3 ms | 2028 KB | Output is correct |
7 | Correct | 3 ms | 2028 KB | Output is correct |
8 | Correct | 2 ms | 2028 KB | Output is correct |
9 | Correct | 2 ms | 2028 KB | Output is correct |
10 | Correct | 2 ms | 2028 KB | Output is correct |
11 | Correct | 2 ms | 2028 KB | Output is correct |
12 | Correct | 2 ms | 2028 KB | Output is correct |
13 | Correct | 2 ms | 2028 KB | Output is correct |
14 | Correct | 2 ms | 2028 KB | Output is correct |
15 | Correct | 2 ms | 2028 KB | Output is correct |
16 | Correct | 2 ms | 2028 KB | Output is correct |
17 | Correct | 2 ms | 2028 KB | Output is correct |
18 | Correct | 2 ms | 2028 KB | Output is correct |
19 | Correct | 2 ms | 2028 KB | Output is correct |
20 | Correct | 2 ms | 2028 KB | Output is correct |
21 | Correct | 2 ms | 1772 KB | Output is correct |
22 | Correct | 2 ms | 2028 KB | Output is correct |
23 | Correct | 2 ms | 2028 KB | Output is correct |
24 | Correct | 2 ms | 2028 KB | Output is correct |
25 | Correct | 2 ms | 2028 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 2028 KB | Output is correct |
2 | Correct | 2 ms | 2028 KB | Output is correct |
3 | Correct | 2 ms | 2028 KB | Output is correct |
4 | Correct | 2 ms | 2028 KB | Output is correct |
5 | Correct | 2 ms | 2028 KB | Output is correct |
6 | Correct | 3 ms | 2028 KB | Output is correct |
7 | Correct | 3 ms | 2028 KB | Output is correct |
8 | Correct | 2 ms | 2028 KB | Output is correct |
9 | Correct | 2 ms | 2028 KB | Output is correct |
10 | Correct | 2 ms | 2028 KB | Output is correct |
11 | Correct | 2 ms | 2028 KB | Output is correct |
12 | Correct | 2 ms | 2028 KB | Output is correct |
13 | Correct | 2 ms | 2028 KB | Output is correct |
14 | Correct | 2 ms | 2028 KB | Output is correct |
15 | Correct | 2 ms | 2028 KB | Output is correct |
16 | Correct | 2 ms | 2028 KB | Output is correct |
17 | Correct | 2 ms | 2028 KB | Output is correct |
18 | Correct | 2 ms | 2028 KB | Output is correct |
19 | Correct | 2 ms | 2028 KB | Output is correct |
20 | Correct | 2 ms | 2028 KB | Output is correct |
21 | Correct | 2 ms | 1772 KB | Output is correct |
22 | Correct | 2 ms | 2028 KB | Output is correct |
23 | Correct | 2 ms | 2028 KB | Output is correct |
24 | Correct | 2 ms | 2028 KB | Output is correct |
25 | Correct | 2 ms | 2028 KB | Output is correct |
26 | Correct | 88 ms | 2412 KB | Output is correct |
27 | Correct | 15 ms | 2412 KB | Output is correct |
28 | Correct | 89 ms | 2540 KB | Output is correct |
29 | Correct | 15 ms | 2412 KB | Output is correct |
30 | Correct | 92 ms | 2412 KB | Output is correct |
31 | Correct | 16 ms | 2412 KB | Output is correct |
32 | Correct | 90 ms | 2412 KB | Output is correct |
33 | Correct | 15 ms | 2412 KB | Output is correct |
34 | Correct | 13 ms | 2540 KB | Output is correct |
35 | Correct | 15 ms | 2412 KB | Output is correct |
36 | Correct | 89 ms | 2540 KB | Output is correct |
37 | Correct | 15 ms | 2412 KB | Output is correct |
38 | Correct | 87 ms | 2412 KB | Output is correct |
39 | Correct | 15 ms | 2412 KB | Output is correct |
40 | Correct | 93 ms | 2412 KB | Output is correct |
41 | Correct | 19 ms | 2540 KB | Output is correct |
42 | Correct | 87 ms | 2412 KB | Output is correct |
43 | Correct | 19 ms | 2412 KB | Output is correct |
44 | Correct | 87 ms | 2412 KB | Output is correct |
45 | Correct | 15 ms | 2412 KB | Output is correct |
46 | Correct | 89 ms | 2540 KB | Output is correct |
47 | Correct | 4 ms | 2176 KB | Output is correct |
48 | Correct | 48 ms | 2412 KB | Output is correct |
49 | Correct | 48 ms | 2412 KB | Output is correct |
50 | Correct | 92 ms | 2528 KB | Output is correct |
51 | Correct | 88 ms | 2528 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 470 ms | 4204 KB | Output is correct |
2 | Correct | 15 ms | 3820 KB | Output is correct |
3 | Correct | 483 ms | 4204 KB | Output is correct |
4 | Correct | 18 ms | 3820 KB | Output is correct |
5 | Correct | 427 ms | 4332 KB | Output is correct |
6 | Correct | 15 ms | 3820 KB | Output is correct |
7 | Correct | 426 ms | 4204 KB | Output is correct |
8 | Correct | 15 ms | 3820 KB | Output is correct |
9 | Correct | 460 ms | 4204 KB | Output is correct |
10 | Correct | 19 ms | 3820 KB | Output is correct |
11 | Correct | 440 ms | 4332 KB | Output is correct |
12 | Correct | 15 ms | 3820 KB | Output is correct |
13 | Correct | 450 ms | 4204 KB | Output is correct |
14 | Correct | 467 ms | 4248 KB | Output is correct |
15 | Correct | 15 ms | 3820 KB | Output is correct |
16 | Correct | 444 ms | 4332 KB | Output is correct |
17 | Correct | 15 ms | 3820 KB | Output is correct |
18 | Correct | 441 ms | 4332 KB | Output is correct |
19 | Correct | 19 ms | 3820 KB | Output is correct |
20 | Correct | 444 ms | 4204 KB | Output is correct |
21 | Correct | 15 ms | 3820 KB | Output is correct |
22 | Correct | 235 ms | 4244 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 2028 KB | Output is correct |
2 | Correct | 2 ms | 2028 KB | Output is correct |
3 | Correct | 2 ms | 2028 KB | Output is correct |
4 | Correct | 2 ms | 2028 KB | Output is correct |
5 | Correct | 2 ms | 2028 KB | Output is correct |
6 | Correct | 3 ms | 2028 KB | Output is correct |
7 | Correct | 3 ms | 2028 KB | Output is correct |
8 | Correct | 2 ms | 2028 KB | Output is correct |
9 | Correct | 2 ms | 2028 KB | Output is correct |
10 | Correct | 2 ms | 2028 KB | Output is correct |
11 | Correct | 2 ms | 2028 KB | Output is correct |
12 | Correct | 2 ms | 2028 KB | Output is correct |
13 | Correct | 2 ms | 2028 KB | Output is correct |
14 | Correct | 2 ms | 2028 KB | Output is correct |
15 | Correct | 2 ms | 2028 KB | Output is correct |
16 | Correct | 2 ms | 2028 KB | Output is correct |
17 | Correct | 2 ms | 2028 KB | Output is correct |
18 | Correct | 2 ms | 2028 KB | Output is correct |
19 | Correct | 2 ms | 2028 KB | Output is correct |
20 | Correct | 2 ms | 2028 KB | Output is correct |
21 | Correct | 2 ms | 1772 KB | Output is correct |
22 | Correct | 2 ms | 2028 KB | Output is correct |
23 | Correct | 2 ms | 2028 KB | Output is correct |
24 | Correct | 2 ms | 2028 KB | Output is correct |
25 | Correct | 2 ms | 2028 KB | Output is correct |
26 | Correct | 88 ms | 2412 KB | Output is correct |
27 | Correct | 15 ms | 2412 KB | Output is correct |
28 | Correct | 89 ms | 2540 KB | Output is correct |
29 | Correct | 15 ms | 2412 KB | Output is correct |
30 | Correct | 92 ms | 2412 KB | Output is correct |
31 | Correct | 16 ms | 2412 KB | Output is correct |
32 | Correct | 90 ms | 2412 KB | Output is correct |
33 | Correct | 15 ms | 2412 KB | Output is correct |
34 | Correct | 13 ms | 2540 KB | Output is correct |
35 | Correct | 15 ms | 2412 KB | Output is correct |
36 | Correct | 89 ms | 2540 KB | Output is correct |
37 | Correct | 15 ms | 2412 KB | Output is correct |
38 | Correct | 87 ms | 2412 KB | Output is correct |
39 | Correct | 15 ms | 2412 KB | Output is correct |
40 | Correct | 93 ms | 2412 KB | Output is correct |
41 | Correct | 19 ms | 2540 KB | Output is correct |
42 | Correct | 87 ms | 2412 KB | Output is correct |
43 | Correct | 19 ms | 2412 KB | Output is correct |
44 | Correct | 87 ms | 2412 KB | Output is correct |
45 | Correct | 15 ms | 2412 KB | Output is correct |
46 | Correct | 89 ms | 2540 KB | Output is correct |
47 | Correct | 4 ms | 2176 KB | Output is correct |
48 | Correct | 48 ms | 2412 KB | Output is correct |
49 | Correct | 48 ms | 2412 KB | Output is correct |
50 | Correct | 92 ms | 2528 KB | Output is correct |
51 | Correct | 88 ms | 2528 KB | Output is correct |
52 | Correct | 470 ms | 4204 KB | Output is correct |
53 | Correct | 15 ms | 3820 KB | Output is correct |
54 | Correct | 483 ms | 4204 KB | Output is correct |
55 | Correct | 18 ms | 3820 KB | Output is correct |
56 | Correct | 427 ms | 4332 KB | Output is correct |
57 | Correct | 15 ms | 3820 KB | Output is correct |
58 | Correct | 426 ms | 4204 KB | Output is correct |
59 | Correct | 15 ms | 3820 KB | Output is correct |
60 | Correct | 460 ms | 4204 KB | Output is correct |
61 | Correct | 19 ms | 3820 KB | Output is correct |
62 | Correct | 440 ms | 4332 KB | Output is correct |
63 | Correct | 15 ms | 3820 KB | Output is correct |
64 | Correct | 450 ms | 4204 KB | Output is correct |
65 | Correct | 467 ms | 4248 KB | Output is correct |
66 | Correct | 15 ms | 3820 KB | Output is correct |
67 | Correct | 444 ms | 4332 KB | Output is correct |
68 | Correct | 15 ms | 3820 KB | Output is correct |
69 | Correct | 441 ms | 4332 KB | Output is correct |
70 | Correct | 19 ms | 3820 KB | Output is correct |
71 | Correct | 444 ms | 4204 KB | Output is correct |
72 | Correct | 15 ms | 3820 KB | Output is correct |
73 | Correct | 235 ms | 4244 KB | Output is correct |
74 | Correct | 1337 ms | 8652 KB | Output is correct |
75 | Correct | 102 ms | 8768 KB | Output is correct |
76 | Correct | 1304 ms | 8652 KB | Output is correct |
77 | Correct | 107 ms | 8556 KB | Output is correct |
78 | Correct | 1315 ms | 8652 KB | Output is correct |
79 | Correct | 1322 ms | 8652 KB | Output is correct |
80 | Correct | 108 ms | 8684 KB | Output is correct |
81 | Correct | 104 ms | 8556 KB | Output is correct |
82 | Correct | 1335 ms | 8684 KB | Output is correct |
83 | Correct | 1297 ms | 8652 KB | Output is correct |
84 | Correct | 101 ms | 8556 KB | Output is correct |
85 | Correct | 1339 ms | 8812 KB | Output is correct |
86 | Correct | 111 ms | 8648 KB | Output is correct |
87 | Correct | 1364 ms | 8652 KB | Output is correct |
88 | Correct | 99 ms | 8556 KB | Output is correct |
89 | Correct | 1325 ms | 8684 KB | Output is correct |
90 | Correct | 100 ms | 8556 KB | Output is correct |
91 | Correct | 1313 ms | 8556 KB | Output is correct |
92 | Correct | 106 ms | 8556 KB | Output is correct |
93 | Correct | 1305 ms | 8652 KB | Output is correct |
94 | Correct | 48 ms | 8044 KB | Output is correct |
95 | Correct | 712 ms | 8684 KB | Output is correct |
96 | Correct | 720 ms | 8556 KB | Output is correct |
97 | Correct | 1318 ms | 8684 KB | Output is correct |
98 | Correct | 1315 ms | 8716 KB | Output is correct |