Submission #574972

#TimeUsernameProblemLanguageResultExecution timeMemory
5749721zaid1Carnival (CEOI14_carnival)C++14
20 / 100
508 ms976 KiB
#include <bits/stdc++.h> using namespace std; // #define endl '\n' const int M = 2e5+5, MOD = 1000000007; #define int long long int rnk[M], clr[M], p[M]; vector<pair<int, int>> nono; int find(int s) { return (s == p[s]?s:p[s]=find(p[s])); } void uni(int a, int b) { if (rnk[a] < rnk[b]) swap(a, b); if (rnk[a] == rnk[b]) rnk[a]++; p[b] = a; } signed main() { cin.tie(0)->sync_with_stdio(0); int n; cin >> n; for (int i = 1; i <= n; i++) clr[i] = p[i] = i; for (int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { bool check = 1; for (auto [a, b]:nono) { int x, y; x = find(a), y = find(b); int w = find(i), z = find(j); if (x > y) swap(x, y); if (w > z) swap(w, z); if (w==x && z == y) check = 0; } if (find(i) != find(j) && check) { cout << 2 << ' ' << i << ' ' << j << endl; int x; cin >> x; if (x == 1) uni(find(i), find(j)); else { nono.push_back({find(i), find(j)}); } } } } map<int, int> mp; set<int> st; for (int i = 1; i <= n; i++) st.insert(find(i)); int cnt = 1; for (int i:st) mp[i] = cnt++; cout << 0 << ' '; for (int i = 1; i <= n; i++) cout << mp[clr[find(i)]] << ' '; cout << endl; return 0; } /* 3 0 3 0 3 0 0 5 4 0 3 1 1 1 3 0 1 4 5 1 */

Compilation message (stderr)

carnival.cpp: In function 'int main()':
carnival.cpp:31:23: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   31 |             for (auto [a, b]:nono) {
      |                       ^
carnival.cpp:61:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   61 |     for (int i = 1; i <= n; i++) cout << mp[clr[find(i)]] << ' '; cout << endl;
      |     ^~~
carnival.cpp:61:67: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   61 |     for (int i = 1; i <= n; i++) cout << mp[clr[find(i)]] << ' '; cout << endl;
      |                                                                   ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...