QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#260349#7804. Intersegment ActivationDoorKickers#WA 1ms3816kbC++203.7kb2023-11-22 03:11:302023-11-22 03:11:31

Judging History

你现在查看的是最新测评结果

  • [2023-11-22 03:11:31]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3816kb
  • [2023-11-22 03:11:30]
  • 提交

answer

#include <bits/stdc++.h>
#include <algorithm>
#include <cctype>
#include <climits>
#include <functional>
#include <iomanip>
#include <queue>
#include <set>
#include <valarray>
#define ll long long
#define ull unsigned long long
#define mp make_pair
#define fi first
#define se second
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pb push_back
#define rep(a, b, c) for (int a = b; a <= c; a++)
#define per(a, b, c) for (int a = c; a >= b; a--)
#define all(a) a.begin() + 1, a.end()
#define all_(a) a.begin(), a.end()
#define vi vector<int>
#define vl vector<ll>
#define vpii vector<pii>
#define vpll vector<pll>
int mod = 998244353;
ll gcd(ll a, ll b) {return b == 0 ? a : gcd(b, a % b);}
ll lcm(ll a, ll b) {return a / gcd(a, b) * b;}
ll fp_m (ll a, ll n) {
    a %= mod;
    ll res = 1; while (n) { if (n & 1) res = res * a % mod; a = a * a % mod; n >>= 1; } return res;
}
ll fp (ll a, ll n) {
    ll res = 1; while (n) { if (n & 1) res *= a; a *= a; n >>= 1; } return res;
}
ll inv(ll x) {return fp_m(x, mod - 2);}
template<typename T>
std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec) {
    os << "[";
    for (size_t i = 0; i < vec.size(); ++i) {
        os << vec[i];
        if (i < vec.size() - 1)
            os << ", ";
    }
    os << "]";
    return os;
}
template<typename T, typename... Args>
void debug(std::string name, T value, Args &&...arg) {
    std::cout << name;
    (..., (std::cout << '[' << arg << ']'));
    std::cout << " = " << value << '\n';
}
//中文测试 中文测试
signed main()   {
    std::ios::sync_with_stdio(0);
    std::cin.tie(0); std::cout.tie(0);
    int n; std::cin >> n;
    std::map<std::pair<int, int>, int> mx;
    std::map<std::pair<int, int>, int> now;
    int max = 0;
    std::cin >> max;
    int cnt = 0;
    for (int i = 1; i <= n; i++) {
        std::function<void(int)> dfs = [&] (int layer) {
            if (layer == n + 1) {
                return;
            }
            dfs(layer + 1);
            std::cout << i << ' ' << layer << '\n';
            std::cout.flush();
            cnt++;
            assert(cnt <= 2500);
            now[{i, layer}] = 1 - now[{i, layer}];
            int K; 
            std::cin >> K;
            if (K == n) exit(0);
            if (K > max) {
                K = max;
                mx = now;
            }
            dfs(layer + 1);
        };
        dfs(i);
        // for (int j = 0; j <= (1 << (n - i + 1)) - 1; j++) {
        //     for (int k = i; k <= n; k++) {
        //         int x = (j >> (k - i)) & 1;
        //         if (now[{i, k}] != x) {
        //             cnt++;
        //             // std::cout << i << ' ' << k << '\n';
        //             std::cout.flush();
        //             now[{i, k}] = 1 - now[{i, k}];
        //             // int K; std::cin >> K;
        //             // if (K == n) {
        //                 // return 0;
        //             // } else {
        //             //     if (K > max) {
        //             //         K = max;
        //             //         mx = now;
        //             //     }
        //             // }
        //         }
        //     }
        // }
        for (int k = i; k <= n; k++) {
            if (now[{i, k}] != mx[{i, k}]) {
                std::cout << i << ' ' << k << '\n';
                cnt++;
                assert(cnt <= 2500);
                std::cout.flush();
                now[{i, k}] = 1 - now[{i, k}];
                int K; 
                std::cin >> K;
                if (K == n) return 0;
            }
        }
    }
    return 0;
}

//出题是2^n = 11111 + 1

/*
1 2 3 4 5 6
[1, 1]
[2, 2]
[3, 3]
[4, 2]
[5, 1]
[6, 1]

*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3632kb

input:

3
0
0
0
1
0
0
0
0
0
1
3

output:

1 3
1 2
1 3
1 1
1 3
1 2
1 3
1 1
1 2
2 3

result:

ok OK, 10 queries

Test #2:

score: 0
Accepted
time: 1ms
memory: 3616kb

input:

1
0
1

output:

1 1

result:

ok OK, 1 queries

Test #3:

score: 0
Accepted
time: 0ms
memory: 3504kb

input:

2
1
0
0
2

output:

1 2
1 1
1 2

result:

ok OK, 3 queries

Test #4:

score: 0
Accepted
time: 0ms
memory: 3816kb

input:

2
0
0
1
0
1
2

output:

1 2
1 1
1 2
1 2
2 2

result:

ok OK, 5 queries

Test #5:

score: 0
Accepted
time: 1ms
memory: 3624kb

input:

2
0
0
0
1
2

output:

1 2
1 1
1 2
2 2

result:

ok OK, 4 queries

Test #6:

score: 0
Accepted
time: 1ms
memory: 3620kb

input:

2
0
2

output:

1 2

result:

ok OK, 1 queries

Test #7:

score: 0
Accepted
time: 1ms
memory: 3600kb

input:

3
0
1
2
0
0
3

output:

1 3
1 2
1 3
1 1
1 3

result:

ok OK, 5 queries

Test #8:

score: -100
Wrong Answer
time: 1ms
memory: 3564kb

input:

3
0
0
0
0
0
1
0
0
0
1
1
2
1
1

output:

1 3
1 2
1 3
1 1
1 3
1 2
1 3
1 2
1 3
2 3
2 2
2 3
3 3

result:

wrong answer format  Unexpected end of file - int32 expected