Submission #815888

#TimeUsernameProblemLanguageResultExecution timeMemory
815888yeysoMinerals (JOI19_minerals)C++14
6 / 100
10 ms976 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; void Solve(int N) { int a = 0; int b = 0; //vector<vector<int>> res(2 * N + 1, vector<int>(15, 0)); vector<int> arr(2 * N + 1, 0); vector<int> res(2 * N + 1, 1); for(int k = 0; k <= 14; k ++){ for(int i = 0; i <= 2 * N; i ++){ if(k > 0){ if(i & (1 << k)){ if(i & (1 << (k - 1))){} else { a = Query(i); arr[i] ^= 1; } } else { if(i & (1 << (k - 1))){ a = Query(i); arr[i] ^= 1; } } } else { if(i & (1 << 0)){ a = Query(i); arr[i] ^= 1; } } //if(not i & (1 << k) and i & (1 << (k - 1))){ // a = Query(i); //} } for(int i = 1; i <= 2 * N; i ++){ //cout << arr[i]; b = Query(i); if(a == b){ // Then b is paired with something where the kth bit is 1 //res[a][k] = 1; res[i] += (1 << k); } b = Query(i); } //cout << "\n"; for(int i = 1; i <= 2 * N; i ++){ if(i & (1 << k)){ //a = Query(i); //arr[i] ^= 1; } } } /* N queries to set up 2N queries for each one N queries to remove Repeat all log(n) times N / 2 queries to set up 4N queries for each one Repeat log(n) times = 4N * 15 */ set<pair<int, int>> ans; for(int i = 0; i < res.size(); i ++){ ans.insert({min(i , res[i] -1), max(i , res[i] - 1)}); //Answer(i, res[i]); } for(auto itx = ++ans.begin(); itx != ans.end(); ++itx){ Answer((*itx).first, (*itx).second); //cout << (*itx).first << " " << (*itx).second << "\n"; } } /* g++ -std=gnu++17 -O2 -Wall -pipe -static -o minerals grader.cpp minerals.cpp 4 1 5 2 6 3 4 7 8 */

Compilation message (stderr)

minerals.cpp: In function 'void Solve(int)':
minerals.cpp:69:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |     for(int i = 0; i < res.size(); i ++){
      |                    ~~^~~~~~~~~~~~
#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...