답안 #641963

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
641963 2022-09-18T03:59:09 Z devariaota Zagrade (COI20_zagrade) C++17
71 / 100
985 ms 580 KB
#include <bits/stdc++.h>
using namespace std;

int n, q;
char arr[100005];

int ask(int l, int r) {
    cout << "? " << l <<  " "  << r << endl;
    int ret;
    cin >> ret;
    return ret;
}

int main() {
    cin >> n >> q;
    int sz = -1;

    vector<pair<int, int> > v;
    int l = 1, r = 2;
    while(r <= n) {
        int ret = ask(l, r);
        if (ret) {
            arr[l] = '(';
            arr[r] = ')';
            // if (sz >= 0) {
            //   cout << v[sz].second << " " << l << endl;
            // }
            while (sz >= 0 && v[sz].second >= l - 1) {
                // cout << v[sz].second << " " << l - 1 << endl;
                // cout << v[sz].first << " " << v[sz].second << endl;
                l = min(l, v[sz].first);
                r = max(r, v[sz].second);
                v.pop_back();
                sz--;
            }
            
            // cout << ":: v nya ::" << endl; 
            
            // for(int j = 0; j < v.size(); j++) {
            //   cout << v[j].first << " " << v[j].second  << " ";
            // }
            
            // cout << "l r" << endl;
            
            // cout << l << " " << r << endl;
            sz++;
            v.push_back(make_pair(l, r));
            
            // cout << "::" << v.size() << endl;
            
            

            if (sz >= 1) {
                r++;
                l--;
            }
            else if(l > 1) {
              r++;
              l--;
            }
            else {
                r+=2;
                l = r - 1;
            }

            
        }
        else {
            r++;
            l = r - 1;
        }
    }

    cout << "! ";

    for(int i = 1; i <= n; i++) {
        cout << arr[i];
    }
    cout << endl;

}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 6 ms 208 KB Output is correct
3 Correct 10 ms 208 KB Output is correct
4 Correct 9 ms 208 KB Output is correct
5 Correct 6 ms 208 KB Output is correct
6 Correct 6 ms 208 KB Output is correct
7 Correct 7 ms 208 KB Output is correct
8 Correct 6 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Mismatch at position 1. Expected ), found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 412 ms 472 KB Output is correct
3 Correct 848 ms 580 KB Output is correct
4 Correct 760 ms 452 KB Output is correct
5 Correct 653 ms 504 KB Output is correct
6 Correct 795 ms 500 KB Output is correct
7 Correct 985 ms 424 KB Output is correct
8 Correct 818 ms 448 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Mismatch at position 1. Expected ), found
2 Halted 0 ms 0 KB -