QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#448337 | #4912. WereYouLast | asupersalmon | 50 | 12821ms | 4992kb | C++14 | 1.7kb | 2024-06-19 15:34:04 | 2024-06-19 15:34:04 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
bool query(int);
void modify(int,bool);
bool WereYouLast(int N, int m){
if(N == (1<<10)){
int num = 0;
for(int i = 0; i < 10; i++){
num += ((int)query(i+1)<<i);
}
if(num == (1<<10)-1) return 1;
num++;
for(int i = 0; i < 10; i++){
modify(i+1,(num&(1<<i))>0);
}
return 0;
}
else if(N == (1<<16)){
}
else if(N == (1<<20)){
bitset<65> arr("00000000001000001000001100010011000000000000000000000000000000000");
int num = 1;
bool die = true;
int l[6];
bool blob[6];
int s = 5;
for(int i = 0; i < 5; i++){
blob[i] = query(num);
die &= (blob[i]^arr[num]);
l[i]= num;
num = num * 2;
if(blob[i]^arr[num/2]) num++;
}
if(die) return 1;
for(int i = s - 1; i >= 0; i--){
if(!(blob[i]^arr[l[i]]) ){
modify(l[i],!arr[l[i]]);
s = i - 1;
break;
}
modify(l[i],arr[l[i]]);
}
for(int i = s; i >= 0; i--){
modify(l[i],arr[l[i]]);
}
return 0;
}
else if(true){
bitset<65> arr("00000000000000000001101001100101000000000100001111000010000000000");
int num = 1;
bool die = true;
int l[6];
bool blob[6];
int s = 6;
for(int i = 0; i < 6; i++){
blob[i] = query(num);
die &= (blob[i]^arr[num]);
l[i]= num;
num = num * 2;
if(blob[i]^arr[num/2]) num++;
if( arr[1]^blob[0] && i == 3){
s = 4;
break;
}
}
if(die) return 1;
for(int i = s - 1; i >= 0; i--){
if(!(blob[i]^arr[l[i]]) ){
modify(l[i],!arr[l[i]]);
s = i - 1;
break;
}
modify(l[i],arr[l[i]]);
}
for(int i = s; i >= 0; i--){
modify(l[i],arr[l[i]]);
}
return 0;
}
return 1;
}
详细
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 1ms
memory: 3796kb
input:
1024 10
output:
12345876 10 10
result:
ok Correct Answer. C1 = 10. C2 = 10.
Subtask #2:
score: 0
Wrong Answer
Test #2:
score: 0
Wrong Answer
time: 0ms
memory: 4912kb
input:
65536 100000
output:
12345876 -3 1 12345876 -3 1
result:
wrong answer Wrong Answer At Query 1.
Subtask #3:
score: 0
Wrong Answer
Test #3:
score: 0
Wrong Answer
time: 180ms
memory: 4900kb
input:
1048576 100000
output:
12345876 -3 1048576 12345876 -3 1048576
result:
wrong answer Wrong Answer At Query 1048576.
Subtask #4:
score: 40
Accepted
Test #4:
score: 40
Accepted
time: 12821ms
memory: 4992kb
input:
67108864 100000
output:
12345876 6 6
result:
ok Correct Answer. C1 = 6. C2 = 6.