QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#492938 | #4912. WereYouLast | TrueFalse | 100 ✓ | 4830ms | 5124kb | C++14 | 662b | 2024-07-26 17:20:52 | 2024-07-26 17:20:52 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
bool query(int);
void modify(int, bool);
bool WereYouLast(int n, int m) {
int dick = __lg(n);
if (m == 10) {
int tot = 0;
for (int i = 1; i <= 10; ++i)
tot += query(i) << i - 1;
if (++tot == n) return 1;
for (int i = 1; i <= 10; ++i) {
modify(i, tot >> i - 1 & 1);
}
return 0;
}
int tot = 0;
for (int i = 1; i <= 5; ++i)
tot += query(i) << i - 1;
if (tot == 31) return 1;
++tot;
if (!query(tot + 5)) {
modify(tot + 5, 1);
tot = tot == dick ? 31 : 0;
} else modify(tot + 5, 0);
for (int i = 1; i <= 5; ++i) {
modify(i, tot >> i - 1 & 1);
}
return 0;
}
详细
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 1ms
memory: 3820kb
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: 5124kb
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: 77ms
memory: 4916kb
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: 4830ms
memory: 4976kb
input:
67108864 100000
output:
12345876 6 6
result:
ok Correct Answer. C1 = 6. C2 = 6.