Submission #666814

#TimeUsernameProblemLanguageResultExecution timeMemory
666814Hacv16Superpozicija (COCI22_superpozicija)C++17
0 / 110
258 ms340 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int MAX = 2e6 + 50; const int INF = 0x3f3f3f3f; int tc, n, a[MAX], b[MAX]; string s; bool valid(string& t){ stack<char> s; for(int i = 0; i < t.size(); i++){ if(t[i] == ')'){ if(s.empty()) return false; else s.pop(); }else{ s.push('('); } } if(s.size()) return false; return true; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> tc; while(tc--){ cin >> n >> s; for(int i = 0; i < n; i++) cin >> a[i] >> b[i]; for(int i = 0; i < n; i++) a[i]--, b[i]--; int ans = -1; for(int mask = 0; mask < (1 << n); mask++){ string cur = ""; for(int i = 0; i < n; i++){ if(mask & (1 << i)) cur += s[a[i]]; else cur += s[b[i]]; } if(valid(cur)){ ans = mask; break; } } if(ans == -1){ cout << -1 << '\n'; }else{ for(int i = 0; i < n; i++) cout << (ans & (1 << i) ? 1 : 0) << ' '; cout << '\n'; } } return 0; }

Compilation message (stderr)

Main.cpp: In function 'bool valid(std::string&)':
Main.cpp:15:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     for(int i = 0; i < t.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...