Submission #130417

#TimeUsernameProblemLanguageResultExecution timeMemory
130417mirbek01Simurgh (IOI17_simurgh)C++17
Compilation error
0 ms0 KiB
#include "simurgh.h" #include "grader.cpp" #include <bits/stdc++.h> using namespace std; const int N = 3e4 + 2; int p[N], sz[N], used[N]; vector <int> g[N]; int f_s(int v){ return (p[v] == v)?v:p[v] = f_s(p[v]); } void u_s(int a, int b){ a = f_s(a); b = f_s(b); if(a != b){ if(sz[a] < sz[b]) swap(a, b); p[b] = a; sz[a] += sz[b]; } } int tin[N], tout[N], timer; void dfs(int v, int pr){ tin[v] = ++ timer; for(int to : g[v]){ if(to == pr) continue; dfs(to, v); } tout[v] = timer; } bool upper(int a, int b){ return tin[a] <= tin[b] && tout[a] >= tout[b]; } vector<int> find_roads(int n, vector<int> u, vector<int> v) { vector<int> r(n - 1); int m = (int)u.size(); for(int i = 0; i < n; i ++) p[i] = i, sz[i] = 1; int pt = 0; for(int i = 0; i < m; i ++){ if(f_s(u[i]) != f_s(v[i])){ r[pt ++] = i; u_s(u[i], v[i]); g[u[i]].push_back(v[i]); g[v[i]].push_back(u[i]); } } dfs(0, 0); for(int i = 0; i < pt; i ++){ int a = u[ r[i] ], b = v[ r[i] ]; if(upper(b, a)) swap(a, b); int mx = 0, cntg = 0; vector <int> golds; for(int j = 0; j < m; j ++){ int cnt = 0; if(upper(b, v[j])) cnt ++; if(upper(b, u[j])) cnt ++; if(cnt != 1) continue; if(used[j] == 2) cntg ++; if(used[j] == 1) continue; int e = r[i]; r[i] = j; int kol = count_common_roads(r); r[i] = e; if(mx < kol){ while(!golds.empty()){ int last = golds.back(); used[last] = 1; golds.pop_back(); } mx = kol; } if(mx == kol){ golds.emplace_back(j); } else { used[j] = 1; } } if(cntg) continue; for(int j = 0; j < (int)golds.size(); j ++) used[ golds[j] ] = 2; } pt = 0; for(int i = 0; i < m; i ++){ if(used[i] == 2) r[pt ++] = i; } return r; }

Compilation message (stderr)

/tmp/cclwMzUN.o: In function `count_common_roads(std::vector<int, std::allocator<int> > const&)':
grader.cpp:(.text+0x210): multiple definition of `count_common_roads(std::vector<int, std::allocator<int> > const&)'
/tmp/cc4geBSR.o:simurgh.cpp:(.text+0x3b0): first defined here
/tmp/cclwMzUN.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/cc4geBSR.o:simurgh.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status