QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#448319 | #4912. WereYouLast | asupersalmon | 50 | 12791ms | 5132kb | C++14 | 1.1kb | 2024-06-19 15:28:12 | 2024-06-19 15:28:13 |
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(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: 3964kb
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: 14ms
memory: 4952kb
input:
65536 100000
output:
12345876 -3 65536 12345876 -3 65536
result:
wrong answer Wrong Answer At Query 65536.
Subtask #3:
score: 0
Wrong Answer
Test #3:
score: 0
Wrong Answer
time: 196ms
memory: 5132kb
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: 12791ms
memory: 4988kb
input:
67108864 100000
output:
12345876 6 6
result:
ok Correct Answer. C1 = 6. C2 = 6.