Submission #27461

# Submission time Handle Problem Language Result Execution time Memory
27461 2017-07-13T05:21:18 Z TAMREF Three Friends (BOI14_friends) C++11
0 / 100
3 ms 3988 KB
#include <bits/stdc++.h>
using namespace std;
const int mx=2e6+10;
char S[mx];
int N,h;
void input(){
    scanf("%d\n",&N);
    fgets(S,mx-4,stdin);
    S[N]=0;
    if(!(N&1)) exit(0&puts("NOT POSSIBLE"));
    h=(N-1)>>1;
}
void solve_small(){
    char F[2500]={},G[2500]={};
    for(int i=0;i<N;i++){
        strncpy(F,S,i);
        strncpy(F+i,S+i+1,N-1-i);
        if(!strncmp(F,F+h,h)){
            if(G[0] && strncmp(F,G,N-1)) exit(0&puts("NOT UNIQUE"));
            strncpy(G,F,N-1);
        }
    }
    if(!G[0]) exit(0&puts("NOT POSSIBLE"));
    for(int i=0;i<h;i++) putchar(G[i]); puts("");
}
void solve(){
    int s=0,e=N-1,xs=-1,xe=-1;
    for(int i=0;i<h;i++){
        if(S[i]!=S[i+h]){
            s=max(s,i);
            e=min(e,i+h);
            if(s>e) exit(0&puts("NOT POSSIBLE"));
        }
        if(S[i]!=S[i+h+1]){
            if(xs==-1){
                xs=i+1;
                xe=i+h;
            } else{
                xs=min(xs,i+1);
                xe=max(xe,i+h);
            }
        }
    }
}
int main(){
    input();
    if(N<2000) solve_small();
    else solve();
}

Compilation message

friends.cpp: In function 'void input()':
friends.cpp:7:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d\n",&N);
                     ^
friends.cpp:8:24: warning: ignoring return value of 'char* fgets(char*, int, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
     fgets(S,mx-4,stdin);
                        ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3988 KB Output is correct
2 Correct 0 ms 3988 KB Output is correct
3 Correct 0 ms 3988 KB Output is correct
4 Correct 0 ms 3988 KB Output is correct
5 Correct 0 ms 3988 KB Output is correct
6 Correct 0 ms 3988 KB Output is correct
7 Correct 0 ms 3988 KB Output is correct
8 Correct 0 ms 3988 KB Output is correct
9 Correct 0 ms 3988 KB Output is correct
10 Correct 0 ms 3988 KB Output is correct
11 Correct 0 ms 3988 KB Output is correct
12 Correct 0 ms 3988 KB Output is correct
13 Correct 0 ms 3988 KB Output is correct
14 Correct 0 ms 3988 KB Output is correct
15 Correct 0 ms 3988 KB Output is correct
16 Correct 0 ms 3988 KB Output is correct
17 Correct 0 ms 3988 KB Output is correct
18 Correct 0 ms 3988 KB Output is correct
19 Correct 0 ms 3988 KB Output is correct
20 Correct 0 ms 3988 KB Output is correct
21 Correct 0 ms 3988 KB Output is correct
22 Correct 0 ms 3988 KB Output is correct
23 Correct 0 ms 3988 KB Output is correct
24 Correct 0 ms 3988 KB Output is correct
25 Correct 0 ms 3988 KB Output is correct
26 Correct 0 ms 3988 KB Output is correct
27 Correct 0 ms 3988 KB Output is correct
28 Correct 0 ms 3988 KB Output is correct
29 Correct 0 ms 3988 KB Output is correct
30 Correct 0 ms 3988 KB Output is correct
31 Correct 0 ms 3988 KB Output is correct
32 Correct 0 ms 3988 KB Output is correct
33 Correct 0 ms 3988 KB Output is correct
34 Correct 0 ms 3988 KB Output is correct
35 Correct 0 ms 3988 KB Output is correct
36 Correct 0 ms 3988 KB Output is correct
37 Correct 0 ms 3988 KB Output is correct
38 Correct 0 ms 3988 KB Output is correct
39 Correct 0 ms 3988 KB Output is correct
40 Correct 0 ms 3988 KB Output is correct
41 Correct 0 ms 3988 KB Output is correct
42 Correct 0 ms 3988 KB Output is correct
43 Correct 0 ms 3988 KB Output is correct
44 Incorrect 0 ms 3988 KB Output isn't correct
45 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 3988 KB Output isn't correct
2 Halted 0 ms 0 KB -