Submission #38470

#TimeUsernameProblemLanguageResultExecution timeMemory
38470oTTo_22Three Friends (BOI14_friends)C++14
0 / 100
500 ms15984 KiB
#include <bits/stdc++.h> #define fi first #define se second #define ll long long const int INF=1e9+1; const int MAXN=1e5+1; const int MOD=13371337; using namespace std; vector < int > pfunc(string str){ vector < int > p(str.size()); int k=0; for (int l=1; l<str.size(); l++) { while (k>0 && str[k]!=str[l]) k=p[k-1]; if (str[k]==str[l]) k++; p[l]=k; } return p; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); int n; string s; cin >> n >> s; if (n%2==0) { cout << "NOT POSSIBLE"; return 0; } bool cnt=0; string ans; for (int i=0; i<n; i++) { string st=s; st.erase(i,1); vector < int > p=pfunc(st); //for (int i=0; i<n-1; i++) // cout << p[i] << " "; //cout << "\n"; if (p[n-2]>=(n-1)/2) { if (cnt) { cout << "NOT UNIQUE"; return 0; } else { cnt++; for (int j=0; j<(n-1)/2; j++) ans+=st[j]; } } } if (cnt==0) cout << "NOT POSSIBLE"; else cout << ans; return 0; }

Compilation message (stderr)

friends.cpp: In function 'std::vector<int> pfunc(std::__cxx11::string)':
friends.cpp:14:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int l=1; l<str.size(); l++) {
                    ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...