제출 #398568

#제출 시각아이디문제언어결과실행 시간메모리
398568iulia13세 명의 친구들 (BOI14_friends)C++14
100 / 100
86 ms4660 KiB
#include <iostream>

using namespace std;
const int nmax = 2e6 + 5;
char v[nmax];
int main()
{
    int n, i = 1, j = 1, ok = 0;
    cin >> n;
    if (n % 2 == 0)
    {
        cout << "NOT POSSIBLE";
        return 0;
    }
    cin >> v + 1;
    int skip = 0;
    ///primele n / 2 sunt suuuper
    for (i = n / 2 + 1; i <= n && skip < 2 && j <= n / 2; i++)
    {
        if (v[i] == v[j])
            j++;
        else
            skip++;
    }
    if (skip < 2)
        ok = 1;
    skip = 0;
    j = n / 2 + 2;
    ///ult n / 2 sunt suuuuuuuuuper
    for (i = 1; i <= n / 2 + 1 && j <= n && skip < 2; i++)
    {
        if (v[i] == v[j])
            j++;
        else
            skip++;
    }
    if (skip < 2)
        ok += 2;
    if (ok == 3)
    {
        ok = 1;
        for (i = 1; ok && i <= n / 2; i++)
            if (v[i] != v[i + n / 2 + 1])
                ok = 0;
        if (!ok)
        {
            cout << "NOT UNIQUE";
            return 0;
        }
    }
    if (!ok)
    {
        cout << "NOT POSSIBLE";
        return 0;
    }
    if (ok == 1)
    {
        for (i = 1; i <= n/ 2; i++)
            cout << v[i];
    }
    else
    {
        for (i = n / 2 + 2; i <= n; i++)
            cout << v[i];
    }
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

friends.cpp: In function 'int main()':
friends.cpp:15:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   15 |     cin >> v + 1;
      |            ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...