Submission #17600

# Submission time Handle Problem Language Result Execution time Memory
17600 2016-01-02T03:55:01 Z Namnamseo Three Friends (BOI14_friends) C++
100 / 100
26 ms 3036 KB
#include <cstdio>
 
char buf[2000010];
int count[26];
int target[26];
int n;
 
int main()
{
    scanf("%d",&n);
    int i;
    int len = (n-1)/2;
    scanf("%s",buf);
    for(i=0;i<n;++i) count[buf[i]-'A']++;
    int tmp=0, tmpi;
    for(i=0;i<26;++i){
        if(count[i]%2) ++tmp, tmpi=i;
    }
    if(tmp!=1){
        puts("NOT POSSIBLE");
        return 0;
    }
    tmp=0;
    for(i=0;i<26;++i){
        target[i]=(count[i]+1)/2;
        if(target[i]) ++tmp;
    }
    int zeroc=0;
    for(i=0;i<len;++i){
        --target[buf[i]-'A'];
        if(target[buf[i]-'A']==0) zeroc++;
    }
    bool a1, a2;
    int j;
    bool flag=false;
    for(i=0, j=len+1; j<n; ++i, ++j){
        if(buf[i+flag]!=buf[j]){
            if(flag) break;
            else flag=true;
        }
    }
    a1=(j==n);
    flag=false;
    for(i=0,j=len;i<len; ++i, ++j){
        if(buf[i]!=buf[j+flag]){
            if(flag) break;
            else flag=true;
        }
    }
    a2=(i==len);
    if(a1 && a2){
        for(i=0;i<len;i++){
            if(buf[i]!=buf[i+len+1]) break;
        }
        if(i==len) {
            puts(buf+len+1);
        }
        else puts("NOT UNIQUE");
    } else if(a1){
        puts(buf+len+1);
    } else if(a2){
        buf[len]=0;
        puts(buf);
    } else {
        puts("NOT POSSIBLE");
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3036 KB Output is correct
2 Correct 0 ms 3036 KB Output is correct
3 Correct 0 ms 3036 KB Output is correct
4 Correct 0 ms 3036 KB Output is correct
5 Correct 0 ms 3036 KB Output is correct
6 Correct 0 ms 3036 KB Output is correct
7 Correct 0 ms 3036 KB Output is correct
8 Correct 0 ms 3036 KB Output is correct
9 Correct 0 ms 3036 KB Output is correct
10 Correct 0 ms 3036 KB Output is correct
11 Correct 0 ms 3036 KB Output is correct
12 Correct 0 ms 3036 KB Output is correct
13 Correct 0 ms 3036 KB Output is correct
14 Correct 0 ms 3036 KB Output is correct
15 Correct 0 ms 3036 KB Output is correct
16 Correct 0 ms 3036 KB Output is correct
17 Correct 0 ms 3036 KB Output is correct
18 Correct 0 ms 3036 KB Output is correct
19 Correct 0 ms 3036 KB Output is correct
20 Correct 0 ms 3036 KB Output is correct
21 Correct 0 ms 3036 KB Output is correct
22 Correct 0 ms 3036 KB Output is correct
23 Correct 0 ms 3036 KB Output is correct
24 Correct 0 ms 3036 KB Output is correct
25 Correct 0 ms 3036 KB Output is correct
26 Correct 0 ms 3036 KB Output is correct
27 Correct 0 ms 3036 KB Output is correct
28 Correct 0 ms 3036 KB Output is correct
29 Correct 0 ms 3036 KB Output is correct
30 Correct 0 ms 3036 KB Output is correct
31 Correct 0 ms 3036 KB Output is correct
32 Correct 0 ms 3036 KB Output is correct
33 Correct 0 ms 3036 KB Output is correct
34 Correct 0 ms 3036 KB Output is correct
35 Correct 0 ms 3036 KB Output is correct
36 Correct 0 ms 3036 KB Output is correct
37 Correct 0 ms 3036 KB Output is correct
38 Correct 0 ms 3036 KB Output is correct
39 Correct 0 ms 3036 KB Output is correct
40 Correct 0 ms 3036 KB Output is correct
41 Correct 0 ms 3036 KB Output is correct
42 Correct 0 ms 3036 KB Output is correct
43 Correct 0 ms 3036 KB Output is correct
44 Correct 0 ms 3036 KB Output is correct
45 Correct 0 ms 3036 KB Output is correct
46 Correct 0 ms 3036 KB Output is correct
47 Correct 0 ms 3036 KB Output is correct
48 Correct 0 ms 3036 KB Output is correct
49 Correct 0 ms 3036 KB Output is correct
50 Correct 0 ms 3036 KB Output is correct
51 Correct 0 ms 3036 KB Output is correct
52 Correct 0 ms 3036 KB Output is correct
53 Correct 0 ms 3036 KB Output is correct
54 Correct 0 ms 3036 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 11 ms 3036 KB Output is correct
2 Correct 26 ms 3036 KB Output is correct
3 Correct 19 ms 3036 KB Output is correct
4 Correct 18 ms 3036 KB Output is correct
5 Correct 13 ms 3036 KB Output is correct
6 Correct 13 ms 3036 KB Output is correct
7 Correct 24 ms 3036 KB Output is correct
8 Correct 13 ms 3036 KB Output is correct
9 Correct 24 ms 3036 KB Output is correct
10 Correct 21 ms 3036 KB Output is correct
11 Correct 25 ms 3036 KB Output is correct
12 Correct 0 ms 3036 KB Output is correct
13 Correct 0 ms 3036 KB Output is correct
14 Correct 0 ms 3036 KB Output is correct
15 Correct 0 ms 3036 KB Output is correct
16 Correct 0 ms 3036 KB Output is correct
17 Correct 0 ms 3036 KB Output is correct
18 Correct 0 ms 3036 KB Output is correct
19 Correct 0 ms 3036 KB Output is correct
20 Correct 0 ms 3036 KB Output is correct
21 Correct 0 ms 3036 KB Output is correct
22 Correct 0 ms 3036 KB Output is correct
23 Correct 0 ms 3036 KB Output is correct
24 Correct 0 ms 3036 KB Output is correct
25 Correct 0 ms 3036 KB Output is correct
26 Correct 0 ms 3036 KB Output is correct
27 Correct 0 ms 3036 KB Output is correct
28 Correct 0 ms 3036 KB Output is correct
29 Correct 0 ms 3036 KB Output is correct
30 Correct 0 ms 3036 KB Output is correct
31 Correct 0 ms 3036 KB Output is correct
32 Correct 0 ms 3036 KB Output is correct
33 Correct 0 ms 3036 KB Output is correct
34 Correct 0 ms 3036 KB Output is correct
35 Correct 0 ms 3036 KB Output is correct
36 Correct 0 ms 3036 KB Output is correct
37 Correct 0 ms 3036 KB Output is correct
38 Correct 0 ms 3036 KB Output is correct
39 Correct 0 ms 3036 KB Output is correct
40 Correct 0 ms 3036 KB Output is correct
41 Correct 0 ms 3036 KB Output is correct
42 Correct 0 ms 3036 KB Output is correct
43 Correct 0 ms 3036 KB Output is correct
44 Correct 0 ms 3036 KB Output is correct
45 Correct 0 ms 3036 KB Output is correct
46 Correct 0 ms 3036 KB Output is correct
47 Correct 0 ms 3036 KB Output is correct
48 Correct 0 ms 3036 KB Output is correct
49 Correct 0 ms 3036 KB Output is correct
50 Correct 0 ms 3036 KB Output is correct
51 Correct 0 ms 3036 KB Output is correct
52 Correct 0 ms 3036 KB Output is correct
53 Correct 0 ms 3036 KB Output is correct
54 Correct 0 ms 3036 KB Output is correct