Submission #672408

#TimeUsernameProblemLanguageResultExecution timeMemory
672408horiseunZagrade (COI20_zagrade)C++11
0 / 100
1 ms208 KiB
#include <iostream>
#include <vector>
#include <stack>
#include <cstring>
#include <algorithm>
using namespace std;

int n, q, emp;
stack<int> unpaired;

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin >> n >> q;
    string ans(n + 1, ' ');
    unpaired.push(0);
    for (int i = 1; i < n; i++) {
        if (unpaired.empty()) {
            unpaired.push(i);
            continue;
        }
        cout << "? " << unpaired.top() << " " << i << "\n";
        cout.flush();
        int res; cin >> res;
        if (res) {
            ans[unpaired.top()] = '(';
            ans[i] = ')';
            unpaired.pop();
        } else {
            unpaired.push(i);
        }
    }

    emp = unpaired.size() / 2;
    while (!unpaired.empty()) {
        if (unpaired.size() <= emp) ans[unpaired.top()] = ')';
        else ans[unpaired.top()] = '(';
        unpaired.pop();
    }

    cout << "!" << ans << "\n";
    cout.flush();

}

Compilation message (stderr)

zagrade.cpp: In function 'int main()':
zagrade.cpp:38:29: warning: comparison of integer expressions of different signedness: 'std::stack<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   38 |         if (unpaired.size() <= emp) ans[unpaired.top()] = ')';
      |             ~~~~~~~~~~~~~~~~^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...