답안 #988342

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
988342 2024-05-24T14:15:56 Z fanwen Zagrade (COI20_zagrade) C++17
0 / 100
1 ms 600 KB
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>

using namespace std;
// using namespace __gnu_pbds;

#define fi first
#define se second
#define REP(i, n) for (auto i = 0; i < (n); ++i)
#define FOR(i, a, b) for (auto i = (a); i <= (b); ++i)
#define FORD(i, a, b) for (auto i = (a); i >= (b); --i)
#define FORE(i, a, b) for (auto i = (a); i < (b); ++i)
#define MASK(x) (1LL << (x))
#define BIT(x, i) (((x) >> (i)) & 1)
#define ALL(x) (x).begin(), (x).end()
#define left ___left 
#define right ___right 
#define __builtin_popcount __builtin_popcountll

const int MAX = 1e5 + 5; 

int n, q, a[MAX];

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

void you_make_it(void) {
    cin >> n >> q; 
    deque <int> dq; 
    fill(a + 1, a + n + 1, -1);
    for (int i = 1; i <= n; ++i) {
        if(i > 1 and !dq.empty()) {
            if(ask(dq.back(), i)) {
                a[dq.back()] = 0;
                a[i] = 1;
                dq.pop_back();
            } else {
                dq.push_back(i);
            }
        } else {
            dq.push_back(i);
        }
    }

    for (int i = 0; i < dq.size() / 2; ++i) {
        a[dq[i]] = 1;
        a[dq[dq.size() - i - 1]] = 0;
    }
    cout << "! ";
    for (int i = 1; i <= n; ++i) {
        assert(a[i] != -1);
        cout << (a[i] ? "(" : ")");
    }
}

signed main() {

#ifdef LOCAL
    freopen("TASK.inp", "r", stdin);
    freopen("TASK.out", "w", stdout);
#endif // LOCAL
    auto start_time = chrono::high_resolution_clock::now();

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

    int test = 1;
    // cin >> test;

    for (int i = 0; i < test; ++i) {
        you_make_it();
        // cout << '\n';
    }
    auto end_time = chrono::high_resolution_clock::now();

    cerr << "\nExecution time : " << chrono::duration_cast <chrono::milliseconds> (end_time - start_time).count() << "[ms]" << endl;
    return (0 ^ 0);
}

// Dream it. Wish it. Do it.

Compilation message

zagrade.cpp: In function 'void you_make_it()':
zagrade.cpp:48:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for (int i = 0; i < dq.size() / 2; ++i) {
      |                     ~~^~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Mismatch at position 1. Expected (, found )
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 600 KB Mismatch at position 1. Expected ), found (
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Mismatch at position 1. Expected (, found )
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Mismatch at position 1. Expected ), found (
2 Halted 0 ms 0 KB -