Submission #861970

#TimeUsernameProblemLanguageResultExecution timeMemory
861970maks007parentrises (BOI18_parentrises)C++14
50 / 100
190 ms58092 KiB
#include "bits/stdc++.h" using namespace std; #define int long long pair <int,int> mn(pair <int,int> a, pair <int,int> b) { if(max(a.first, a.second) < max(b.first, b.second) ) return a; return b; } signed main () { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int T; cin >> T; int q; cin >> q; while(q --) { string str; cin >> str; int n = str.size(); stack <int> st; vector <int> cnt(n, 0), nopeopen, nopeclose; for(int i = 0; i < n; i ++) { if(str[i] == ')') { if(st.size() == 0) { nopeclose.push_back(i); continue; } cnt[i] ++; st.pop(); }else { st.push(i); cnt[i] ++; } } while(st.size() != 0) nopeopen.push_back(st.top()), st.pop(); set <int> close, open; for(int i = 0; i < str.size(); i ++) { if(cnt[i] == 1) { if(str[i] == '(') open.insert(i); else close.insert(i); } } sort(nopeopen.rbegin(), nopeopen.rend()); for(auto i : nopeopen) { if(close.size() == 0) { cout << "impossible\n"; goto end; } if(i > *--close.end()) { cout << "impossible\n"; goto end; } cnt[*--close.end()] ++; close.erase(--close.end()); cnt[i] = 5; } sort(nopeclose.begin(), nopeclose.end()); for(auto i : nopeclose) { if(open.size() == 0) { cout << "impossible\n"; goto end; } if(i < *open.begin()) { cout << "impossible\n"; goto end; } cnt[*open.begin()] ++; open.erase(open.begin()); cnt[i] = 5; } for(auto i : cnt) { if(i == 2) cout << "G"; else if(i == 1) cout << "R"; else cout << "B"; assert(i > 0); } cout << "\n"; continue; end:; } return 0; }

Compilation message (stderr)

parentrises.cpp: In function 'int main()':
parentrises.cpp:40:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |   for(int i = 0; i < str.size(); i ++) {
      |                  ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...