# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
859455 |
2023-10-10T07:33:16 Z |
maks007 |
Graph (BOI20_graph) |
C++14 |
|
700 ms |
49280 KB |
#include "bits/stdc++.h"
using namespace std;
#define int long long
vector <vector <pair <int,int>>> g;
vector <int> used;
vector <int> comp;
#define int long long
void dfs(int v) {
used[v] = 1;
for(auto [i, j] : g[v]) {
if(used[i] == LLONG_MAX) dfs(i);
}
}
void get_comps() {
for(int i = 0; i < used.size(); i ++) {
if(used[i] == LLONG_MAX) {
dfs(i);
comp.push_back(i);
}
}
}
int check(int v) {
int f = 1;
for(auto [i, j] : g[v]) {
if(used[i] == LLONG_MAX) {
used[i] = j - used[v];
f = min(f, check(i));
}else {
if(used[i] + used[v] != j) f = 0;
}
}
return f;
}
vector <pair <int,int>> rec(int v) {
int mn = LLONG_MAX;
vector <pair <int,int>> ans;
for(int val = -100; val <= 100; val += 1) {
for(auto &j : used) j = LLONG_MAX;
used[v] = val;
if(check(v)) {
int cnt = 0;
for(auto &j : used) {
if(j == LLONG_MAX) continue;
cnt += abs(j);
}
if(cnt <= mn) {
mn = cnt;
for(int j = 0; j < used.size(); j ++) {
if(used[j] == LLONG_MAX) continue;
ans.push_back({j, used[j]});
}
}
}
// cout << val << " ";
// if(val == 0.5) {
// for(auto j : used) cout << j << " ";
// }
}
if(mn == LLONG_MAX) {
cout << "NO\n";
exit(0);
}
return ans;
}
signed main () {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n, m;
cin >> n >> m;
g.resize(n);
used.resize(n, LLONG_MAX);
for(int i = 0; i < m; i ++) {
int u, v;
cin >> u >> v;
u --, v --;
int w;
cin >> w;
g[u].push_back({v, w*10});
g[v].push_back({u, w*10});
}
get_comps();
// assert(comp.size() < 2);
for(auto &j : used) j = LLONG_MAX;
vector <vector <pair <int,int>>> res;
for(auto i : comp) {
res.push_back(rec(i));
}
cout << "YES\n";
vector <int> ans(n);
for(auto i : res) {
for(auto j : i) ans[j.first] = j.second;
}
for(auto i : ans) cout << fixed << setprecision(6) << (double)i*0.1 << " ";
return 0;
}
Compilation message
Graph.cpp: In function 'void dfs(long long int)':
Graph.cpp:15:11: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
15 | for(auto [i, j] : g[v]) {
| ^
Graph.cpp: In function 'void get_comps()':
Graph.cpp:21:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
21 | for(int i = 0; i < used.size(); i ++) {
| ~~^~~~~~~~~~~~~
Graph.cpp: In function 'long long int check(long long int)':
Graph.cpp:31:11: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
31 | for(auto [i, j] : g[v]) {
| ^
Graph.cpp: In function 'std::vector<std::pair<long long int, long long int> > rec(long long int)':
Graph.cpp:56:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
56 | for(int j = 0; j < used.size(); j ++) {
| ~~^~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
answer = YES |
2 |
Correct |
0 ms |
348 KB |
answer = YES |
3 |
Correct |
0 ms |
348 KB |
answer = YES |
4 |
Correct |
0 ms |
348 KB |
answer = NO |
5 |
Correct |
0 ms |
348 KB |
answer = YES |
6 |
Correct |
0 ms |
344 KB |
answer = YES |
7 |
Correct |
0 ms |
348 KB |
answer = YES |
8 |
Correct |
0 ms |
348 KB |
answer = YES |
9 |
Correct |
0 ms |
348 KB |
answer = NO |
10 |
Correct |
0 ms |
348 KB |
answer = YES |
11 |
Correct |
0 ms |
348 KB |
answer = YES |
12 |
Correct |
1 ms |
348 KB |
answer = NO |
13 |
Correct |
0 ms |
348 KB |
answer = YES |
14 |
Correct |
0 ms |
348 KB |
answer = YES |
15 |
Correct |
1 ms |
344 KB |
answer = YES |
16 |
Correct |
0 ms |
348 KB |
answer = YES |
17 |
Correct |
0 ms |
344 KB |
answer = YES |
18 |
Correct |
0 ms |
600 KB |
answer = YES |
19 |
Correct |
0 ms |
348 KB |
answer = YES |
20 |
Correct |
0 ms |
348 KB |
answer = YES |
21 |
Correct |
0 ms |
504 KB |
answer = YES |
22 |
Correct |
0 ms |
348 KB |
answer = NO |
23 |
Correct |
0 ms |
348 KB |
answer = NO |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
answer = YES |
2 |
Correct |
0 ms |
348 KB |
answer = YES |
3 |
Correct |
0 ms |
348 KB |
answer = YES |
4 |
Correct |
0 ms |
348 KB |
answer = NO |
5 |
Correct |
0 ms |
348 KB |
answer = YES |
6 |
Correct |
0 ms |
344 KB |
answer = YES |
7 |
Correct |
0 ms |
348 KB |
answer = YES |
8 |
Correct |
0 ms |
348 KB |
answer = YES |
9 |
Correct |
0 ms |
348 KB |
answer = NO |
10 |
Correct |
0 ms |
348 KB |
answer = YES |
11 |
Correct |
0 ms |
348 KB |
answer = YES |
12 |
Correct |
1 ms |
348 KB |
answer = NO |
13 |
Correct |
0 ms |
348 KB |
answer = YES |
14 |
Correct |
0 ms |
348 KB |
answer = YES |
15 |
Correct |
1 ms |
344 KB |
answer = YES |
16 |
Correct |
0 ms |
348 KB |
answer = YES |
17 |
Correct |
0 ms |
344 KB |
answer = YES |
18 |
Correct |
0 ms |
600 KB |
answer = YES |
19 |
Correct |
0 ms |
348 KB |
answer = YES |
20 |
Correct |
0 ms |
348 KB |
answer = YES |
21 |
Correct |
0 ms |
504 KB |
answer = YES |
22 |
Correct |
0 ms |
348 KB |
answer = NO |
23 |
Correct |
0 ms |
348 KB |
answer = NO |
24 |
Correct |
1 ms |
856 KB |
answer = YES |
25 |
Correct |
1 ms |
604 KB |
answer = YES |
26 |
Correct |
1 ms |
860 KB |
answer = YES |
27 |
Correct |
1 ms |
348 KB |
answer = YES |
28 |
Correct |
0 ms |
348 KB |
answer = YES |
29 |
Correct |
1 ms |
988 KB |
answer = YES |
30 |
Correct |
1 ms |
348 KB |
answer = NO |
31 |
Correct |
1 ms |
604 KB |
answer = YES |
32 |
Correct |
1 ms |
344 KB |
answer = YES |
33 |
Correct |
1 ms |
604 KB |
answer = YES |
34 |
Correct |
1 ms |
348 KB |
answer = YES |
35 |
Correct |
0 ms |
348 KB |
answer = YES |
36 |
Correct |
0 ms |
344 KB |
answer = YES |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
answer = YES |
2 |
Correct |
0 ms |
348 KB |
answer = YES |
3 |
Correct |
0 ms |
348 KB |
answer = YES |
4 |
Correct |
0 ms |
348 KB |
answer = NO |
5 |
Correct |
0 ms |
348 KB |
answer = YES |
6 |
Correct |
0 ms |
344 KB |
answer = YES |
7 |
Correct |
0 ms |
348 KB |
answer = YES |
8 |
Correct |
0 ms |
348 KB |
answer = YES |
9 |
Correct |
0 ms |
348 KB |
answer = NO |
10 |
Correct |
0 ms |
348 KB |
answer = YES |
11 |
Correct |
0 ms |
348 KB |
answer = YES |
12 |
Correct |
1 ms |
348 KB |
answer = NO |
13 |
Correct |
0 ms |
348 KB |
answer = YES |
14 |
Correct |
0 ms |
348 KB |
answer = YES |
15 |
Correct |
1 ms |
344 KB |
answer = YES |
16 |
Correct |
0 ms |
348 KB |
answer = YES |
17 |
Correct |
0 ms |
344 KB |
answer = YES |
18 |
Correct |
0 ms |
600 KB |
answer = YES |
19 |
Correct |
0 ms |
348 KB |
answer = YES |
20 |
Correct |
0 ms |
348 KB |
answer = YES |
21 |
Correct |
0 ms |
504 KB |
answer = YES |
22 |
Correct |
0 ms |
348 KB |
answer = NO |
23 |
Correct |
0 ms |
348 KB |
answer = NO |
24 |
Correct |
1 ms |
856 KB |
answer = YES |
25 |
Correct |
1 ms |
604 KB |
answer = YES |
26 |
Correct |
1 ms |
860 KB |
answer = YES |
27 |
Correct |
1 ms |
348 KB |
answer = YES |
28 |
Correct |
0 ms |
348 KB |
answer = YES |
29 |
Correct |
1 ms |
988 KB |
answer = YES |
30 |
Correct |
1 ms |
348 KB |
answer = NO |
31 |
Correct |
1 ms |
604 KB |
answer = YES |
32 |
Correct |
1 ms |
344 KB |
answer = YES |
33 |
Correct |
1 ms |
604 KB |
answer = YES |
34 |
Correct |
1 ms |
348 KB |
answer = YES |
35 |
Correct |
0 ms |
348 KB |
answer = YES |
36 |
Correct |
0 ms |
344 KB |
answer = YES |
37 |
Correct |
1 ms |
1244 KB |
answer = YES |
38 |
Correct |
1 ms |
348 KB |
answer = YES |
39 |
Correct |
3 ms |
2512 KB |
answer = YES |
40 |
Correct |
3 ms |
608 KB |
answer = YES |
41 |
Correct |
2 ms |
344 KB |
answer = NO |
42 |
Correct |
6 ms |
6596 KB |
answer = YES |
43 |
Correct |
6 ms |
3148 KB |
answer = YES |
44 |
Correct |
7 ms |
2924 KB |
answer = YES |
45 |
Correct |
3 ms |
604 KB |
answer = YES |
46 |
Correct |
4 ms |
2256 KB |
answer = YES |
47 |
Correct |
3 ms |
348 KB |
answer = YES |
48 |
Correct |
3 ms |
348 KB |
answer = YES |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
answer = YES |
2 |
Correct |
0 ms |
348 KB |
answer = YES |
3 |
Correct |
0 ms |
348 KB |
answer = YES |
4 |
Correct |
0 ms |
348 KB |
answer = NO |
5 |
Correct |
0 ms |
348 KB |
answer = YES |
6 |
Correct |
0 ms |
344 KB |
answer = YES |
7 |
Correct |
0 ms |
348 KB |
answer = YES |
8 |
Correct |
0 ms |
348 KB |
answer = YES |
9 |
Correct |
0 ms |
348 KB |
answer = NO |
10 |
Correct |
0 ms |
348 KB |
answer = YES |
11 |
Correct |
0 ms |
348 KB |
answer = YES |
12 |
Correct |
1 ms |
348 KB |
answer = NO |
13 |
Correct |
0 ms |
348 KB |
answer = YES |
14 |
Correct |
0 ms |
348 KB |
answer = YES |
15 |
Correct |
1 ms |
344 KB |
answer = YES |
16 |
Correct |
0 ms |
348 KB |
answer = YES |
17 |
Correct |
0 ms |
344 KB |
answer = YES |
18 |
Correct |
0 ms |
600 KB |
answer = YES |
19 |
Correct |
0 ms |
348 KB |
answer = YES |
20 |
Correct |
0 ms |
348 KB |
answer = YES |
21 |
Correct |
0 ms |
504 KB |
answer = YES |
22 |
Correct |
0 ms |
348 KB |
answer = NO |
23 |
Correct |
0 ms |
348 KB |
answer = NO |
24 |
Correct |
1 ms |
856 KB |
answer = YES |
25 |
Correct |
1 ms |
604 KB |
answer = YES |
26 |
Correct |
1 ms |
860 KB |
answer = YES |
27 |
Correct |
1 ms |
348 KB |
answer = YES |
28 |
Correct |
0 ms |
348 KB |
answer = YES |
29 |
Correct |
1 ms |
988 KB |
answer = YES |
30 |
Correct |
1 ms |
348 KB |
answer = NO |
31 |
Correct |
1 ms |
604 KB |
answer = YES |
32 |
Correct |
1 ms |
344 KB |
answer = YES |
33 |
Correct |
1 ms |
604 KB |
answer = YES |
34 |
Correct |
1 ms |
348 KB |
answer = YES |
35 |
Correct |
0 ms |
348 KB |
answer = YES |
36 |
Correct |
0 ms |
344 KB |
answer = YES |
37 |
Correct |
1 ms |
1244 KB |
answer = YES |
38 |
Correct |
1 ms |
348 KB |
answer = YES |
39 |
Correct |
3 ms |
2512 KB |
answer = YES |
40 |
Correct |
3 ms |
608 KB |
answer = YES |
41 |
Correct |
2 ms |
344 KB |
answer = NO |
42 |
Correct |
6 ms |
6596 KB |
answer = YES |
43 |
Correct |
6 ms |
3148 KB |
answer = YES |
44 |
Correct |
7 ms |
2924 KB |
answer = YES |
45 |
Correct |
3 ms |
604 KB |
answer = YES |
46 |
Correct |
4 ms |
2256 KB |
answer = YES |
47 |
Correct |
3 ms |
348 KB |
answer = YES |
48 |
Correct |
3 ms |
348 KB |
answer = YES |
49 |
Correct |
65 ms |
32940 KB |
answer = YES |
50 |
Correct |
38 ms |
2004 KB |
answer = YES |
51 |
Correct |
64 ms |
49280 KB |
answer = YES |
52 |
Correct |
31 ms |
1624 KB |
answer = NO |
53 |
Correct |
6 ms |
3788 KB |
answer = YES |
54 |
Correct |
14 ms |
13400 KB |
answer = YES |
55 |
Correct |
30 ms |
21176 KB |
answer = YES |
56 |
Correct |
63 ms |
30048 KB |
answer = YES |
57 |
Execution timed out |
1037 ms |
19960 KB |
Time limit exceeded |
58 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
answer = YES |
2 |
Correct |
0 ms |
348 KB |
answer = YES |
3 |
Correct |
0 ms |
348 KB |
answer = YES |
4 |
Correct |
0 ms |
348 KB |
answer = NO |
5 |
Correct |
0 ms |
348 KB |
answer = YES |
6 |
Correct |
0 ms |
344 KB |
answer = YES |
7 |
Correct |
0 ms |
348 KB |
answer = YES |
8 |
Correct |
0 ms |
348 KB |
answer = YES |
9 |
Correct |
0 ms |
348 KB |
answer = NO |
10 |
Correct |
0 ms |
348 KB |
answer = YES |
11 |
Correct |
0 ms |
348 KB |
answer = YES |
12 |
Correct |
1 ms |
348 KB |
answer = NO |
13 |
Correct |
0 ms |
348 KB |
answer = YES |
14 |
Correct |
0 ms |
348 KB |
answer = YES |
15 |
Correct |
1 ms |
344 KB |
answer = YES |
16 |
Correct |
0 ms |
348 KB |
answer = YES |
17 |
Correct |
0 ms |
344 KB |
answer = YES |
18 |
Correct |
0 ms |
600 KB |
answer = YES |
19 |
Correct |
0 ms |
348 KB |
answer = YES |
20 |
Correct |
0 ms |
348 KB |
answer = YES |
21 |
Correct |
0 ms |
504 KB |
answer = YES |
22 |
Correct |
0 ms |
348 KB |
answer = NO |
23 |
Correct |
0 ms |
348 KB |
answer = NO |
24 |
Correct |
1 ms |
856 KB |
answer = YES |
25 |
Correct |
1 ms |
604 KB |
answer = YES |
26 |
Correct |
1 ms |
860 KB |
answer = YES |
27 |
Correct |
1 ms |
348 KB |
answer = YES |
28 |
Correct |
0 ms |
348 KB |
answer = YES |
29 |
Correct |
1 ms |
988 KB |
answer = YES |
30 |
Correct |
1 ms |
348 KB |
answer = NO |
31 |
Correct |
1 ms |
604 KB |
answer = YES |
32 |
Correct |
1 ms |
344 KB |
answer = YES |
33 |
Correct |
1 ms |
604 KB |
answer = YES |
34 |
Correct |
1 ms |
348 KB |
answer = YES |
35 |
Correct |
0 ms |
348 KB |
answer = YES |
36 |
Correct |
0 ms |
344 KB |
answer = YES |
37 |
Correct |
1 ms |
1244 KB |
answer = YES |
38 |
Correct |
1 ms |
348 KB |
answer = YES |
39 |
Correct |
3 ms |
2512 KB |
answer = YES |
40 |
Correct |
3 ms |
608 KB |
answer = YES |
41 |
Correct |
2 ms |
344 KB |
answer = NO |
42 |
Correct |
6 ms |
6596 KB |
answer = YES |
43 |
Correct |
6 ms |
3148 KB |
answer = YES |
44 |
Correct |
7 ms |
2924 KB |
answer = YES |
45 |
Correct |
3 ms |
604 KB |
answer = YES |
46 |
Correct |
4 ms |
2256 KB |
answer = YES |
47 |
Correct |
3 ms |
348 KB |
answer = YES |
48 |
Correct |
3 ms |
348 KB |
answer = YES |
49 |
Correct |
65 ms |
32940 KB |
answer = YES |
50 |
Correct |
38 ms |
2004 KB |
answer = YES |
51 |
Correct |
64 ms |
49280 KB |
answer = YES |
52 |
Correct |
31 ms |
1624 KB |
answer = NO |
53 |
Correct |
6 ms |
3788 KB |
answer = YES |
54 |
Correct |
14 ms |
13400 KB |
answer = YES |
55 |
Correct |
30 ms |
21176 KB |
answer = YES |
56 |
Correct |
63 ms |
30048 KB |
answer = YES |
57 |
Execution timed out |
1037 ms |
19960 KB |
Time limit exceeded |
58 |
Halted |
0 ms |
0 KB |
- |