Submission #1185089

#TimeUsernameProblemLanguageResultExecution timeMemory
1185089prism7kTropical Garden (IOI11_garden)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 300000; vector<vector<pair<int, int>>> conn(MAXN); vector<vector<int>> adjT(MAXN); const int pr = 150000; int T[MAXN][2]; bool vis[MAXN][2]; bool on_cycle[2]; int C_Len = 2e9+5; void dfs(int u, int cur, int idx, int start) { if(u == start && vis[u][idx]) { C_Len = cur; on_cycle[idx] = true; return; } if(vis[u][idx]) return; vis[u][idx] = true; T[u][idx] = cur; for(int v : adjT[u]) { dfs(v, cur + 1, idx, start); } } int main() { memset(T, -1, sizeof T); int n, m, p; cin >> n >> m >> p; for(int i = 0, a, b; i < m; ++i) { cin >> a >> b; conn[a].push_back({i, b}); conn[b].push_back({i, a}); } for(int i = 0; i < n; ++i) sort(conn[i].begin(), conn[i].end()); for(int i = 0; i < n; ++i) { int j, dest, idx; bool usedBest; j = conn[i][0].second; usedBest = false; if (conn[j][0].second == i) usedBest = true; dest = usedBest ? j + pr : j; adjT[dest].push_back(i); idx = (conn[i].size() > 1 ? 1 : 0); j = conn[i][idx].second; usedBest = false; if (conn[j][0].second == i) usedBest = true; dest = usedBest ? j + pr : j; adjT[dest].push_back(i + pr); } dfs(p, 0, 0, p); dfs(p + pr, 0, 1, p + pr); int q, g; cin >> q; while(q--) { cin >> g; int ans = 0; for(int i = 0; i < n; ++i) { bool ok = false; for(int j = 0; j < 2; ++j) { if(on_cycle[j]) { ok |= ((g - T[i][j]) % C_Len) == 0; } else { ok |= (g - T[i][j]) == 0; } } ans += ok; } cout << ans << "\n"; } }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccsjOB7N.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccZ9E77i.o:garden.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccsjOB7N.o: in function `main':
grader.cpp:(.text.startup+0x3f): undefined reference to `count_routes(int, int, int, int (*) [2], int, int*)'
collect2: error: ld returned 1 exit status