제출 #1112251

#제출 시각아이디문제언어결과실행 시간메모리
1112251lucascgar세 명의 친구들 (BOI14_friends)C++17
100 / 100
23 ms8364 KiB
#include <bits/stdc++.h> using namespace std; /* resposta ta na metade esquerda ou na metade direita */ typedef pair<int, int> pii; typedef pair<long long, long long> pll; typedef pair<long double, long double> pdd; const int MAXN = 2e6+11; int q[27]; // A = 0 bool check(string &c, string &o){ // cerr << c << ' ' << o << '\n'; bool s = 0; int j = 0; for (int i=0;i<c.size();i++){ char x = c[i]; if (o[j] == x){ j++; continue; } if (s) return 0; s=1, j++, i--; } return 1; } signed main(){ std::ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; string s; cin >> s; for (auto &x:s) q[x-'A']++; int qo = 0, tg; for (int i=0;i<26;i++) if (q[i]%2==1){ qo++, tg=i; } if (s.size()%2 == 0 || qo>1){ cout << "NOT POSSIBLE\n"; return 0; } set<string> fans; int sz = n/2; string st, o; for (int i=0;i<sz;i++){ st.push_back(s[i]); } for (int i=sz;i<n;i++) o.push_back(s[i]); if (check(st, o)) fans.insert(st); st.clear(); o.clear(); for (int i=0;i<=sz;i++) o.push_back(s[i]); for (int i=sz+1;i<n;i++) st.push_back(s[i]); if (check(st, o)) fans.insert(st); if (fans.empty()){ cout << "NOT POSSIBLE\n"; }else if (fans.size()>1){ cout << "NOT UNIQUE\n"; }else{ cout << *fans.begin() << '\n'; } return 0; }

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

friends.cpp: In function 'bool check(std::string&, std::string&)':
friends.cpp:21:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |     for (int i=0;i<c.size();i++){
      |                  ~^~~~~~~~~
friends.cpp: In function 'int main()':
friends.cpp:44:17: warning: variable 'tg' set but not used [-Wunused-but-set-variable]
   44 |     int qo = 0, tg;
      |                 ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...