제출 #938284

#제출 시각아이디문제언어결과실행 시간메모리
938284UmairAhmadMirza세 명의 친구들 (BOI14_friends)C++17
100 / 100
16 ms10208 KiB
/*********************ALLAH HO AKBAR***********************/
/************HAZRAT MUHAMMAD (Peace be upon him)***********/
 
 
#include <bits/stdc++.h>
using namespace std;
int check1(string a,string b,int n){
    bool flag=0;
    for (int i = 0; i < n; ++i)
    {
        if(a[i]!=b[i+flag]&&flag==0)
            flag=1;
        if(a[i]!=b[i+flag])
            return 0;
    }
    return 1;
}
int check2(string a,string b,int n){
    bool flag=0;
    for (int i = 0; i < n; ++i)
    {
        if(a[i+flag]!=b[i]&&flag==0)
            flag=1;
        if(a[i+flag]!=b[i])
            return 0;
    }
    return 1;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int n;
    cin>>n;
    string s;
    cin>>s;
    // int n=s.length();
    if(n%2==0){
        cout<<"NOT POSSIBLE"<<endl;
        return 0;
    }
    string a="",b="",c="",d="";
    for (int i = 0; i < n/2; ++i){
        a+=s[i];
        c+=s[i];
    }
    c+=s[n/2];
    b+=s[n/2];
    for (int i = (n/2)+1; i < n; ++i)
    {
        b+=s[i];
        d+=s[i];
    }
    // cout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;
    int k1=check1(a,b,n/2);
    int k2=check2(c,d,n/2);
    if(k1+k2==2&&a!=d)
        cout<<"NOT UNIQUE"<<endl;
    else if(k1+k2==0)
        cout<<"NOT POSSIBLE"<<endl;
    else if(k1==1)
        cout<<a<<endl;
    else
        cout<<d<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...