Submission #1223482

#TimeUsernameProblemLanguageResultExecution timeMemory
1223482iulia_morariuZagrade (COI20_zagrade)C++20
0 / 100
2393 ms904 KiB
#include <algorithm> #include <iostream> #include <fstream> #include <climits> #include <vector> #include <stack> #include <cmath> // #include <bits/stdc++.h> #define in cin #define out cout using namespace std; string s; vector<int> rez; void explore(int p){ // p si p + 1 sunt () for(int i = p - 1; i > 0; i--){ if(s[i] != '.') break; if(s[i + 1] == '(' && rez[i] == 0) break; // nu mai chiar pot face ceva if(s[i + 1] == ')' && rez[i] == 0){ s[i] = ')'; continue; } if(s[i + 1] == ')' && rez[i] == 1){ s[i] = '('; continue; } } for(int i = p + 2; i < s.size(); i++){ if(s[i] != '.') break; if(s[i - 1] == ')' && rez[i] == 0) break; // nu mai chiar pot face ceva if(s[i - 1] == '(' && rez[i] == 0){ s[i] = '('; continue; } if(s[i - 1] == '(' && rez[i] == 1){ s[i] = ')'; continue; } } } void explore_final(int p){ for(int i = p - 1; i > 0; i--){ if(s[i] != '.') break; if(s[i + 1] == '(' && rez[i] == 0){ s[i] = '('; continue; } if(s[i + 1] == ')' && rez[i] == 0){ s[i] = ')'; continue; } if(s[i + 1] == ')' && rez[i] == 1){ s[i] = '('; continue; } } for(int i = p + 2; i < s.size(); i++){ if(s[i] != '.') break; if(s[i - 1] == ')' && rez[i] == 0){ s[i] = ')'; continue; } if(s[i - 1] == '(' && rez[i] == 0){ s[i] = '('; continue; } if(s[i - 1] == '(' && rez[i] == 1){ s[i] = ')'; continue; } } } signed main(){ int n, q; in >> n >> q; int p = 0; rez.resize(n); s.resize(n + 1); for(int i = 1; i + 1 <= n; i++){ s[i] = s[i + 1] = '.'; cout << "? " << i << " " << i + 1 << endl; in >> rez[i]; if(rez[i] == 1) p = i; } for(int i = 1; i + 1 <= n; i++){ if(rez[i] == 1){ s[i] = '('; s[i + 1] = ')'; explore(i); } } for(int i = 1; i <= n; i++){ if(s[i] == '.') continue; explore_final(i); } s.erase(s.begin()); cout << "! " << s << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...