Submission #1148880

#TimeUsernameProblemLanguageResultExecution timeMemory
1148880yeysoMinerals (JOI19_minerals)C++20
25 / 100
5 ms792 KiB
#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;

void Solve(int N) {
    int cur = 0;
    int prev = 0;
    int x = log2(2 * N) + 1;
    //cout << x << " ";
    vector<int> binary(N + 1, 0);
    for(int bit = 0; bit < x; bit ++){ 
        for(int i = N + 1; i <= 2 * N; i ++){
            /*if(i != 0){
                // if we need to remove the bit
                if(i & (1 << (bit - 1)) && !(i & (1 << bit))){
                    Query(i + N + 1);
                }
            }*/
            if(i & (1 << bit)){
                prev = Query(i);
                //cout << 1 << " ";
            } else {
                //cout << 0 << " ";
            }
        } //cout << "\n";
        for(int i = 1; i <= N; i ++){
            cur = Query(i);
            if(cur == prev){
                binary[i] += (1 << bit);
            }
            prev = Query(i);
        }
        for(int i = N + 1; i <= 2 * N; i ++){
            if(i & (1 << bit)){
                prev = Query(i);
            }
        }

       
    }
    for(int i = 1; i <= N; i ++){
        //cout << binary[i] << " ";
        Answer(i, binary[i]);
    }
}
/*
g++ -std=gnu++17 -O2 -o minerals grader.cpp minerals.cpp
10
1 17
2 14
3 12
4 19
5 13
6 15
7 11
8 16
9 18
10 20

7
3 14
1 12
5 11
7 13
4 10
2 16
6 15

10
1 17
2 14
3 12
4 19
5 13
6 15
7 11
8 16
9 18
10 20
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...