답안 #74686

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
74686 2018-09-06T13:58:50 Z kjain_1810 세 명의 친구들 (BOI14_friends) C++17
100 / 100
99 ms 23376 KB
#include <iostream>
#include <string>

using namespace std;

string try_candidate(const string &s, int orig_start, int orig_len, int modified_start) {
    bool was_mismatch = false;
    int orig = orig_start, mod = modified_start, i = 0;
    while (i < orig_len) {
        if (s[orig] != s[mod]) {
            if (was_mismatch)
                return string();
            was_mismatch = true;
            mod++;
        } else
            orig++, mod++, i++;
    }
    return s.substr(orig_start, orig_len);
}

int main() {
    string final;
    int N;
    cin >> N;
    cin >> final;
    int orig_len = (final.length() - 1) / 2;
    const string&
        pos1 = try_candidate(final, orig_len + 1, orig_len, 0),
        pos2 = try_candidate(final, 0, orig_len, orig_len);
    if ( (pos1.empty() && pos2.empty()) || (final.size() % 2 == 0))
        cout << "NOT POSSIBLE" << endl;
    else if (pos1.empty())
        cout << pos2 << endl;
    else if (pos2.empty())
        cout << pos1 << endl;
    else if (pos1 != pos2)
        cout << "NOT UNIQUE" << endl;
    else 
        cout << pos1 << endl;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 592 KB Output is correct
4 Correct 2 ms 592 KB Output is correct
5 Correct 2 ms 592 KB Output is correct
6 Correct 2 ms 592 KB Output is correct
7 Correct 2 ms 592 KB Output is correct
8 Correct 2 ms 596 KB Output is correct
9 Correct 2 ms 640 KB Output is correct
10 Correct 2 ms 640 KB Output is correct
11 Correct 2 ms 640 KB Output is correct
12 Correct 2 ms 640 KB Output is correct
13 Correct 2 ms 668 KB Output is correct
14 Correct 2 ms 668 KB Output is correct
15 Correct 2 ms 668 KB Output is correct
16 Correct 2 ms 668 KB Output is correct
17 Correct 2 ms 668 KB Output is correct
18 Correct 2 ms 668 KB Output is correct
19 Correct 2 ms 696 KB Output is correct
20 Correct 2 ms 700 KB Output is correct
21 Correct 2 ms 700 KB Output is correct
22 Correct 2 ms 700 KB Output is correct
23 Correct 2 ms 700 KB Output is correct
24 Correct 2 ms 700 KB Output is correct
25 Correct 2 ms 700 KB Output is correct
26 Correct 2 ms 700 KB Output is correct
27 Correct 2 ms 700 KB Output is correct
28 Correct 2 ms 700 KB Output is correct
29 Correct 2 ms 700 KB Output is correct
30 Correct 2 ms 700 KB Output is correct
31 Correct 2 ms 700 KB Output is correct
32 Correct 2 ms 700 KB Output is correct
33 Correct 2 ms 700 KB Output is correct
34 Correct 2 ms 756 KB Output is correct
35 Correct 2 ms 756 KB Output is correct
36 Correct 2 ms 756 KB Output is correct
37 Correct 2 ms 756 KB Output is correct
38 Correct 2 ms 756 KB Output is correct
39 Correct 2 ms 756 KB Output is correct
40 Correct 2 ms 756 KB Output is correct
41 Correct 2 ms 756 KB Output is correct
42 Correct 2 ms 808 KB Output is correct
43 Correct 2 ms 808 KB Output is correct
44 Correct 2 ms 808 KB Output is correct
45 Correct 2 ms 812 KB Output is correct
46 Correct 2 ms 816 KB Output is correct
47 Correct 2 ms 820 KB Output is correct
48 Correct 2 ms 824 KB Output is correct
49 Correct 2 ms 824 KB Output is correct
50 Correct 2 ms 832 KB Output is correct
51 Correct 2 ms 832 KB Output is correct
52 Correct 2 ms 832 KB Output is correct
53 Correct 2 ms 832 KB Output is correct
54 Correct 2 ms 832 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 78 ms 6720 KB Output is correct
2 Correct 78 ms 8696 KB Output is correct
3 Correct 76 ms 10648 KB Output is correct
4 Correct 77 ms 12636 KB Output is correct
5 Correct 78 ms 14596 KB Output is correct
6 Correct 78 ms 16532 KB Output is correct
7 Correct 79 ms 19488 KB Output is correct
8 Correct 67 ms 19844 KB Output is correct
9 Correct 70 ms 21600 KB Output is correct
10 Correct 99 ms 23376 KB Output is correct
11 Correct 62 ms 23376 KB Output is correct
12 Correct 2 ms 23376 KB Output is correct
13 Correct 2 ms 23376 KB Output is correct
14 Correct 2 ms 23376 KB Output is correct
15 Correct 2 ms 23376 KB Output is correct
16 Correct 2 ms 23376 KB Output is correct
17 Correct 2 ms 23376 KB Output is correct
18 Correct 2 ms 23376 KB Output is correct
19 Correct 2 ms 23376 KB Output is correct
20 Correct 2 ms 23376 KB Output is correct
21 Correct 2 ms 23376 KB Output is correct
22 Correct 2 ms 23376 KB Output is correct
23 Correct 2 ms 23376 KB Output is correct
24 Correct 2 ms 23376 KB Output is correct
25 Correct 2 ms 23376 KB Output is correct
26 Correct 2 ms 23376 KB Output is correct
27 Correct 2 ms 23376 KB Output is correct
28 Correct 2 ms 23376 KB Output is correct
29 Correct 2 ms 23376 KB Output is correct
30 Correct 2 ms 23376 KB Output is correct
31 Correct 2 ms 23376 KB Output is correct
32 Correct 2 ms 23376 KB Output is correct
33 Correct 2 ms 23376 KB Output is correct
34 Correct 2 ms 23376 KB Output is correct
35 Correct 2 ms 23376 KB Output is correct
36 Correct 2 ms 23376 KB Output is correct
37 Correct 2 ms 23376 KB Output is correct
38 Correct 2 ms 23376 KB Output is correct
39 Correct 2 ms 23376 KB Output is correct
40 Correct 2 ms 23376 KB Output is correct
41 Correct 2 ms 23376 KB Output is correct
42 Correct 2 ms 23376 KB Output is correct
43 Correct 2 ms 23376 KB Output is correct
44 Correct 2 ms 23376 KB Output is correct
45 Correct 3 ms 23376 KB Output is correct
46 Correct 2 ms 23376 KB Output is correct
47 Correct 2 ms 23376 KB Output is correct
48 Correct 2 ms 23376 KB Output is correct
49 Correct 2 ms 23376 KB Output is correct
50 Correct 2 ms 23376 KB Output is correct
51 Correct 2 ms 23376 KB Output is correct
52 Correct 2 ms 23376 KB Output is correct
53 Correct 2 ms 23376 KB Output is correct
54 Correct 2 ms 23376 KB Output is correct