QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#492402#4912. WereYouLastOthers100 ✓4570ms4984kbC++141.2kb2024-07-26 11:58:272024-07-26 11:58:27

Judging History

你现在查看的是最新测评结果

  • [2024-07-26 11:58:27]
  • 评测
  • 测评结果:100
  • 用时:4570ms
  • 内存:4984kb
  • [2024-07-26 11:58:27]
  • 提交

answer

#include <bits/stdc++.h>
#define ll long long
//#define int long long
#define wdnmd const int mod=::mod;
#define lb(i) ((i)&(-(i)))
#define wr(x,ch) write(x),putchar(ch)
using namespace std;
#define gh() getchar()
inline long long read(){
	char ch=gh();
	long long x=0;
	char t=0;
	while(ch<'0'||ch>'9')   t|=ch=='-',ch=gh();
	while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=gh();
	return t?-x:x;
}
void write(ll x) {
    if(x<0) putchar('-'),x=-x;
    if(x>=10) write(x/10);
    putchar(x%10^48);
    return ;
}
bool query(int);
void modify(int,bool);
bool WereYouLast(int n,int m) {
	n=__lg(n);
	if(m==10) {
		int a[10];
		for(int i=0;i<10;i++) a[i]=query(i+1);
		int t=0;
		for(int i=0;i<10;i++) t|=(a[i]<<i);
		if(t==1023) return 1;
		for(int i=0;i<10;i++) {
			if(!a[i]) {
				modify(i+1,1);
				break;
			}
			modify(i+1,0);
		}
		return 0;
	}
	int a[5];
	for(int i=0;i<5;i++) a[i]=query(i+1);
	int t=0;
	for(int i=0;i<5;i++) t|=(a[i]<<i);
	if(t==31) return 1;
	if(t==n-1) {
		for(int i=0;i<5;i++) modify(i+1,1);
		return 0;
	}
	int p=query(t+6);
	modify(t+6,p^1);
	t=(p==0?0:t+1);
	for(int i=0;i<5;i++) modify(i+1,t>>i&1);
	return 0;
}

詳細信息

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 0ms
memory: 3808kb

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: 5ms
memory: 4984kb

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: 72ms
memory: 4964kb

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: 4570ms
memory: 4928kb

input:

67108864 100000

output:

12345876 6 6

result:

ok Correct Answer.
C1 = 6.
C2 = 6.