제출 #105583

#제출 시각아이디문제언어결과실행 시간메모리
105583Leonardo_Paes세 명의 친구들 (BOI14_friends)C++11
0 / 100
1070 ms6280 KiB
#include <bits/stdc++.h> using namespace std; int mark[27]; int main(){ map<string, int> m; int n; cin >> n; string t; cin >> t; for(int i=0; i<n; i++){ mark[t[i]-'A']++; } if(n%2==0){ cout << "NOT POSSIBLE" << endl; return 0; } int x=-1; bool resp=true; for(int i=0; i<=26; i++){ if(mark[i]%2==1){ if(x!=-1)resp=false; x=i; } } if(resp==false){ cout << "NOT POSSIBLE" << endl; return 0; } string y; string p; for(int i=0; i<n; i++){ if(t[i]-'A'==x){ int u=0; string h; for(int j=0; j<n; j++){ if(i!=j){ h+=t[j]; u++; } if(u==(n-1)/2)break; } string q; for(int e=u; e<n; e++){ if(e!=i)q+=t[e]; } if(q==h and m.find(q)==m.end()){ y=q; m[q]=2; } else{ p="NOT UNIQUE\n"; } } } if(resp==false){ cout << "NOT POSSIBLE\n"; } else if(p=="NOT UNIQUE\n"){ cout << p; } else{ cout << y << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...