Submission #419777

# Submission time Handle Problem Language Result Execution time Memory
419777 2021-06-07T12:48:10 Z den_tar Three Friends (BOI14_friends) C++14
0 / 100
500 ms 4192 KB
#include <bits/stdc++.h>

using namespace std;

#define fast ios_base::sync_with_stdio();cin.tie();cout.tie();
#define en cout<<endl;
#define ops cout<<"ops"<<endl;
#define line cout<<"---------------------------"<<endl;
#define fi first
#define se second

typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pllll;
typedef string str;

const ll DIM = 2e6 + 7;
const ll DIMM = 1e2 + 7;
const ll DDIM = 7;
const ll INF = 1e18 + 7;
const ll X = 1e5 + 7;
const ll BS = 2e5 + 7;
const ll AS = 26 + 7;
const ll MODULO = 1e9 + 7;

ll nt,n,m,k,q;

ll val,val1;

ll c[AS];

ll sz,p1,p2,p3,p4,fl;

vector<ll> r;

str s,s1,res;

int main()
{
    fast;
    //ll x1,y1,x2,y2;

    cin>>n>>s;




    for(int i=0; i<n; i++)
    {
        val=s[i]-'A'+1;
        c[val]++;
    }

    val=(-1);
    for(int i=1; i<=26; i++)
    {
        if(c[i]==1)val=i;
        if(c[i]%2==1)k++;
    }






    if(n%2==0)
    {
        cout<<"NOT POSSIBLE"<<endl;
        return 0;
    }

    if(k!=1)
    {
        cout<<"NOT POSSIBLE"<<endl;
        return 0;
    }




    if(val!=(-1))
    {

        res="";

        for(int i=0; i<n/2; i++)
        {
            val1=s[i]-'A'+1;
            if(val!=val1)res+=s[i];
        }

        sz=res.length();

        if(sz != (n/2))res+=s[n/2];

        cout<<res<<endl;
        return 0;
    }







    res="";

    fl=0;

    for(int j=0;j<n;j++){

     if(j<=n/2){
      p1=0;p2=n/2+1;
     }
     else{
      p1=0;p2=n/2;
     }

     while(1){
      if(p1==j)p1++;
      if(p2==j)p2++;

      if(s[p1]!=s[p2] || p2==(n-1))break;

      p1++;
      p2++;
     }

     if(p2!=(n-1))continue;

     fl=1;

     s1="";
     for(int i=0;i<n/2;i++){
      if(i==j)continue;
      s1+=s[i];
     }

     sz=s1.length();

     if(sz < n/2)s1+=s[n/2];

     if(res=="")res=s1;
     else{
      cout<<"NOT UNIQUE"<<endl;
      return 0;
     }

    }

    if(fl==0){
     cout<<"NOT POSSIBLE"<<endl;
     return 0;
    }

    cout<<res<<endl;

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 256 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 204 KB Output is correct
12 Correct 1 ms 204 KB Output is correct
13 Correct 1 ms 204 KB Output is correct
14 Correct 1 ms 256 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Correct 1 ms 204 KB Output is correct
17 Correct 1 ms 204 KB Output is correct
18 Correct 1 ms 204 KB Output is correct
19 Incorrect 1 ms 204 KB Output isn't correct
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1081 ms 4192 KB Time limit exceeded
2 Halted 0 ms 0 KB -