Submission #206724

# Submission time Handle Problem Language Result Execution time Memory
206724 2020-03-04T18:11:48 Z DodgeBallMan Three Friends (BOI14_friends) C++14
100 / 100
72 ms 6272 KB
#include <bits/stdc++.h>

using namespace std;

string t;
int n;

int process( int k ) {
    string l, r;
    for( int i = 0 ; i < k ; i++ ) l += t[i];
    for( int i = k ; i < n ; i++ ) r += t[i];
    int p1 = 0, p2 = 0, len1 = l.length(), len2 = r.length();
    //cout << l << " " << r << " " << len1 << " " << len2 << endl;
    while( p1 < len1 && p2 < len2 && l[p1] == r[p2] ) {
        p1++, p2++;
    } 
    if( p1 == len1 ) return len1 + p2;
    else if( p2 == len2 ) return p1;
    int now;
    if( k == n/2 ) { 
        now = len1 + p2;
        p2++;
    }
    else {
        now = p1;
        p1++;
    }
    //printf("%d %d\n",p1,p2);
    for( ; p1 < len1 && p2 < len2 ; p1++, p2++ ) {
        //cout << l[p1] << " " << r[p2] << endl;
        if( l[p1] != r[p2] ) return -1; 
    }
    return now;
}

int check() {
    for( int i = 0 ; i < n - 1 ; i++ ) {
        if( t[i] != t[i+1] ) return 0;
    }
    return 1;
}
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
    cin >> n >> t;
    if( n % 2 == 0 ) return !printf("NOT POSSIBLE");
    char a = t[0], b = t[1];
    int chk = 1;
    if( check() ) {
        for( int i = 0 ; i < n / 2 ; i ++ ) cout << t[i];
        return 0;
    }
    /*for( int i = 2 ; i < n ; i++ ) {
        if( i % 2 == 0 && t[i] != a ) chk = 0;
        else if( i % 2 && t[i] != b ) chk = 0; 
    }
    if( chk ) return !printf("NOT UNIQUE");*/
    int x = process( n/2 ), y = process( n/2 + 1 );
    //printf("%d %d\n",x,y);
    if( x != -1 && y != -1 && x != y ) return !printf("NOT UNIQUE");
    if( x != -1 ) {
        //printf("%d\n",x);
        int cnt = 0;
        for( int i = 0 ; cnt < n/2 ; i++ ) {
            if( i == x ) continue ;
            cout << t[i];
            cnt++;
        }
        return 0;
    } 
    else if( y != -1 ) {
        //printf("%d\n",y);
        int cnt = 0;
        for( int i = 0 ; cnt < n/2 ; i++ ) {
            if( i == y ) continue ;
            cout << t[i];
            cnt++;
        }
        return 0;
    } 
    printf("NOT POSSIBLE");
    return 0;
}

Compilation message

friends.cpp: In function 'int main()':
friends.cpp:47:10: warning: unused variable 'a' [-Wunused-variable]
     char a = t[0], b = t[1];
          ^
friends.cpp:47:20: warning: unused variable 'b' [-Wunused-variable]
     char a = t[0], b = t[1];
                    ^
friends.cpp:48:9: warning: unused variable 'chk' [-Wunused-variable]
     int chk = 1;
         ^~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 376 KB Output is correct
3 Correct 4 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 5 ms 256 KB Output is correct
8 Correct 4 ms 376 KB Output is correct
9 Correct 5 ms 376 KB Output is correct
10 Correct 5 ms 376 KB Output is correct
11 Correct 6 ms 376 KB Output is correct
12 Correct 5 ms 376 KB Output is correct
13 Correct 5 ms 376 KB Output is correct
14 Correct 4 ms 376 KB Output is correct
15 Correct 5 ms 380 KB Output is correct
16 Correct 5 ms 376 KB Output is correct
17 Correct 5 ms 248 KB Output is correct
18 Correct 5 ms 376 KB Output is correct
19 Correct 5 ms 376 KB Output is correct
20 Correct 5 ms 376 KB Output is correct
21 Correct 5 ms 376 KB Output is correct
22 Correct 5 ms 376 KB Output is correct
23 Correct 5 ms 376 KB Output is correct
24 Correct 5 ms 376 KB Output is correct
25 Correct 5 ms 376 KB Output is correct
26 Correct 5 ms 376 KB Output is correct
27 Correct 5 ms 376 KB Output is correct
28 Correct 4 ms 380 KB Output is correct
29 Correct 5 ms 376 KB Output is correct
30 Correct 4 ms 376 KB Output is correct
31 Correct 5 ms 376 KB Output is correct
32 Correct 5 ms 376 KB Output is correct
33 Correct 5 ms 376 KB Output is correct
34 Correct 5 ms 376 KB Output is correct
35 Correct 5 ms 376 KB Output is correct
36 Correct 5 ms 380 KB Output is correct
37 Correct 5 ms 376 KB Output is correct
38 Correct 5 ms 376 KB Output is correct
39 Correct 5 ms 376 KB Output is correct
40 Correct 5 ms 376 KB Output is correct
41 Correct 5 ms 376 KB Output is correct
42 Correct 5 ms 376 KB Output is correct
43 Correct 5 ms 376 KB Output is correct
44 Correct 5 ms 376 KB Output is correct
45 Correct 5 ms 376 KB Output is correct
46 Correct 5 ms 376 KB Output is correct
47 Correct 5 ms 376 KB Output is correct
48 Correct 5 ms 376 KB Output is correct
49 Correct 5 ms 376 KB Output is correct
50 Correct 5 ms 376 KB Output is correct
51 Correct 5 ms 376 KB Output is correct
52 Correct 5 ms 376 KB Output is correct
53 Correct 5 ms 376 KB Output is correct
54 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 68 ms 6240 KB Output is correct
2 Correct 72 ms 6272 KB Output is correct
3 Correct 68 ms 6168 KB Output is correct
4 Correct 68 ms 6240 KB Output is correct
5 Correct 68 ms 6220 KB Output is correct
6 Correct 9 ms 2456 KB Output is correct
7 Correct 39 ms 3484 KB Output is correct
8 Correct 34 ms 4888 KB Output is correct
9 Correct 61 ms 4888 KB Output is correct
10 Correct 59 ms 4888 KB Output is correct
11 Correct 32 ms 4612 KB Output is correct
12 Correct 5 ms 376 KB Output is correct
13 Correct 5 ms 376 KB Output is correct
14 Correct 5 ms 376 KB Output is correct
15 Correct 5 ms 376 KB Output is correct
16 Correct 5 ms 376 KB Output is correct
17 Correct 5 ms 376 KB Output is correct
18 Correct 5 ms 376 KB Output is correct
19 Correct 5 ms 376 KB Output is correct
20 Correct 4 ms 380 KB Output is correct
21 Correct 5 ms 376 KB Output is correct
22 Correct 5 ms 376 KB Output is correct
23 Correct 5 ms 376 KB Output is correct
24 Correct 5 ms 376 KB Output is correct
25 Correct 4 ms 376 KB Output is correct
26 Correct 5 ms 376 KB Output is correct
27 Correct 5 ms 376 KB Output is correct
28 Correct 5 ms 376 KB Output is correct
29 Correct 5 ms 376 KB Output is correct
30 Correct 4 ms 376 KB Output is correct
31 Correct 5 ms 376 KB Output is correct
32 Correct 5 ms 376 KB Output is correct
33 Correct 5 ms 376 KB Output is correct
34 Correct 5 ms 376 KB Output is correct
35 Correct 5 ms 376 KB Output is correct
36 Correct 5 ms 376 KB Output is correct
37 Correct 5 ms 376 KB Output is correct
38 Correct 5 ms 376 KB Output is correct
39 Correct 5 ms 376 KB Output is correct
40 Correct 5 ms 376 KB Output is correct
41 Correct 5 ms 376 KB Output is correct
42 Correct 5 ms 376 KB Output is correct
43 Correct 4 ms 376 KB Output is correct
44 Correct 5 ms 376 KB Output is correct
45 Correct 5 ms 376 KB Output is correct
46 Correct 5 ms 380 KB Output is correct
47 Correct 5 ms 376 KB Output is correct
48 Correct 5 ms 376 KB Output is correct
49 Correct 5 ms 376 KB Output is correct
50 Correct 5 ms 376 KB Output is correct
51 Correct 5 ms 376 KB Output is correct
52 Correct 5 ms 376 KB Output is correct
53 Correct 4 ms 376 KB Output is correct
54 Correct 5 ms 376 KB Output is correct