QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#457011 | #4912. WereYouLast | marher | 100 ✓ | 5856ms | 5072kb | C++17 | 780b | 2024-06-28 20:52:38 | 2024-06-28 20:52:38 |
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==1024)
{
int w=0;
for(int i=0;i<10;i++)w|=(1<<i)*query(i+1);
if(w==1023)return 1;w++;
for(int i=0;i<10;i++)modify(i+1,(w>>i)&1);
return 0;
}
int rn=0;
while((1<<rn)<n)rn++;
n=rn;
int pos=0;
for(int i=0;i<5;i++)pos|=(1<<i)*query(i+50);
if(pos==31)return 1;
int w=query(pos+1);
if(pos==n-1)
{
for(int i=0;i<5;i++)modify(i+50,1);
return 0;
}
modify(pos+1,w^1);
if(w)
{
pos++;
for(int i=0;i<5;i++)modify(i+50,(pos>>i)&1);
}
else for(int i=0;i<5;i++)modify(i+50,0);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 1ms
memory: 3860kb
input:
1024 10
output:
12345876 10 10
result:
ok Correct Answer. C1 = 10. C2 = 10.
Subtask #2:
score: 20
Accepted
Test #2:
score: 20
Accepted
time: 6ms
memory: 5024kb
input:
65536 100000
output:
12345876 6 6
result:
ok Correct Answer. C1 = 6. C2 = 6.
Subtask #3:
score: 30
Accepted
Test #3:
score: 30
Accepted
time: 81ms
memory: 5072kb
input:
1048576 100000
output:
12345876 6 6
result:
ok Correct Answer. C1 = 6. C2 = 6.
Subtask #4:
score: 40
Accepted
Test #4:
score: 40
Accepted
time: 5856ms
memory: 5020kb
input:
67108864 100000
output:
12345876 6 6
result:
ok Correct Answer. C1 = 6. C2 = 6.