Submission #1140575

#TimeUsernameProblemLanguageResultExecution timeMemory
1140575mnbvcxz123Trobojnica (COCI19_trobojnica)C++20
0 / 110
0 ms320 KiB
#include<bits/stdc++.h> using namespace std; using ll=long long; #define fi first #define se second int get(char c){ return c-48; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin>>n; string s; cin>>s; int val[n]; int pref[n+1]; vector<int>oc(4,0); for(int i=0;i<n;++i){ val[i]=get(s[i]); pref[i+1]=pref[i]^val[i]; ++oc[val[i]]; } vector<pair<int,pair<int,int>>>v,ans; for(int i=0;i<n;++i){ v.push_back(make_pair(val[i],make_pair(i,(i+1)%n))); while(v.size()>=2){ int m=v.size(); if(v[m-1].fi!=v[m-2].fi and !(oc[v[m-1].fi]==1 and oc[v[m-2].fi]==1)){ auto v1=v[m-1],v2=v[m-2]; int col=6-v1.fi-v2.fi; ++oc[col]; --oc[v1.fi]; --oc[v2.fi]; v.pop_back(); v.pop_back(); v.push_back(make_pair(col,make_pair(v2.se.fi,v1.se.se))); ans.push_back(v.back()); }else break; } } if(v.size()==3 and v[0].fi!=v[1].fi and v[0].fi!=v[2].fi and v[1].fi!=v[2].fi){ cout<<"DA\n"; for(auto&i:ans) cout<<i.se.fi+1<<' '<<i.se.se<<' '<<i.fi<<'\n'; }else cout<<"NE\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...