Submission #1004343

#TimeUsernameProblemLanguageResultExecution timeMemory
1004343fuad27Trobojnica (COCI19_trobojnica)C++17
60 / 110
2050 ms3308 KiB
#include <bits/stdc++.h> using namespace std; int main () { cin.tie(0)->sync_with_stdio(0); int n; cin >> n; vector<array<int,3>> v(n); string s; cin >> s; for(int i = 0;i<n;i++) { v[i][2] = (s[i]-'0'); v[i][0] = i; v[i][1] = (i+1)%n; } vector<array<int,3>> res; while(1) { bool check=false; if(v.size() == 3)break; n=v.size(); for(int i = 0;i<n;i++) { if(v[i][2] != v[(i+1)%n][2] and (1^2^3^v[i][2]^v[(i+1)%n][2]) != v[(i+2)%n][2]) { check=1; int L = v[i][0], R = v[(i+1)%n][1]; int val = (1^2^3^v[i][2]^v[(i+1)%n][2]); res.push_back({L, R, val}); if(i!=n-1) { v.erase(v.begin()+i+1); v.erase(v.begin()+i); v.insert(v.begin()+i, {L, R, val}); break; } else { v.erase(v.begin()+i); v.erase(v.begin()); v.insert(v.begin(), {L, R, val}); break; } } } if(check == false) { for(int i = 0;i<n;i++) { if(v[i][2] != v[(i+1)%n][2]) { check=1; int L = v[i][0], R = v[(i+1)%n][1]; int val = (1^2^3^v[i][2]^v[(i+1)%n][2]); res.push_back({L, R, val}); if(i!=n-1) { v.erase(v.begin()+i+1); v.erase(v.begin()+i); v.insert(v.begin()+i, {L, R, val}); break; } else { v.erase(v.begin()+i); v.erase(v.begin()); v.insert(v.begin(), {L, R, val}); break; } } } } if(!check) { cout << "NE\n"; return 0; } } int x=0; for(auto i:v) { x^=i[2]; } if(x!=0) { cout <<"NE\n"; return 0; } cout << "DA\n"; for(auto i:res)cout << i[0]+1 << " " << i[1]+1 << " " << i[2] << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...