Submission #1264197

#TimeUsernameProblemLanguageResultExecution timeMemory
1264197goulthenTrobojnica (COCI19_trobojnica)C++20
0 / 110
0 ms320 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define rep(i,a,b) for(int i=a;i<=b;++i) #define per(i,a,b) for(int i=a;i>=b;--i) #define pb push_back const int MAXN=2e5 + 10; int col[MAXN], p[MAXN], cnt[3]; array<int,3> ans[MAXN]; int32_t main(){ ios::sync_with_stdio(0);cin.tie(0); int n;string s; cin >> n >> s; rep(i,1,n) { col[i] = s[i-1]-'1'; cnt[col[i]]++; p[i] = i%n + 1; } int x = 1; rep(i,1,n-3) { if (max({cnt[0], cnt[1], cnt[2]}) == n - i - 1) { cout << "NE\n"; return 0; } while (col[x] == col[p[x]] || (cnt[col[x]] == 1 && cnt[col[p[x]]] == 1)) x = p[x]; int y = p[x]; int nc = 3-col[x]-col[y]; cnt[col[x]]--; cnt[col[y]]--; cnt[nc]++; col[x] = nc; p[x] = p[y]; ans[i] = {x,p[y],nc}; } if (cnt[0] == 1 && cnt[1] == 1) { cout << "DA\n"; rep(i,1,n-3) cout << ans[i][0] << ' ' << ans[i][1] << ' ' << ans[i][2]+1 << '\n'; } else { cout << "NE\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...