#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) {
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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |