제출 #976903

#제출 시각아이디문제언어결과실행 시간메모리
976903efedmrlrZagrade (COI20_zagrade)C++17
100 / 100
549 ms1636 KiB
#include <bits/stdc++.h>

#define lli long long int
#define ld long double
#define pb push_back
#define MP make_pair
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define REP(i, n) for(int i = 0; (i) < (n); (i)++)

using namespace std;

void fastio() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
}

const int N = 1e5 + 5;
const int INF = 1e9 + 500;
vector<char> res(N);
int n, q;
bool query(int l, int r) {
    cout << "? " << l << " " << r << endl;
    bool x;
    cin >> x;
    return x;
}
void answer() {
    cout << "! ";
    for(int i = 1; i <= n; i++) {
        cout << res[i];
    }
    cout << endl;
}

void solve() {
    cin >> n >> q;
    int l = 1;
    int ops = n / 2;
    deque<int> op;
    op.pb(1);
    for(int r = 2; r <= n; ) {
        bool x = query(l, r);
        if(x) {
            res[r] = ')';
            res[op.back()] = '(';
            ops--;
            op.pop_back();
        }
        else {
            op.pb(r);
        }
        r++;
        if(op.size() > ops) {
            res[op.front()] = ')';
            op.pop_front();
        }
        if(op.empty()) {
            l = r;
            r++;
            op.pb(l);
        }
        else {
            l = op.back();
        }
    }
    while(ops < op.size()) {
        res[op.front()] = ')';
        op.pop_front();
    }
    while(op.size()) {
        res[op.back()] = '(';
        op.pop_back();
    }
    
    answer();
}


signed main() { 
    fastio();
    solve();
}

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

zagrade.cpp: In function 'void solve()':
zagrade.cpp:54:22: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 |         if(op.size() > ops) {
      |            ~~~~~~~~~~^~~~~
zagrade.cpp:67:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |     while(ops < op.size()) {
      |           ~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...