QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#502371#9156. 百万富翁alexz1205#15 610ms86584kbC++141.1kb2024-08-03 04:49:402024-08-03 04:49:40

Judging History

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

  • [2024-08-03 04:49:40]
  • 评测
  • 测评结果:15
  • 用时:610ms
  • 内存:86584kb
  • [2024-08-03 04:49:40]
  • 提交

answer

#include <bits/stdc++.h>
#include "richest.h"
using namespace std;

int richest(int N, int T, int S){
	if (T == 1){
		vector<int> a, b;
		for (int x = 0; x < N; x ++){
			for (int y = x+1; y < N; y ++){
				a.push_back(x);
				b.push_back(y);
			}
		}
		vector<int> c = ask(a, b);
		int ma = 0;
		int check = 0, cur = 0;
		for (int x = 1; x < N; x ++){
			cur += N-x;
			if (c[check + x-ma-1] == x){
				ma = x;
				check = cur;
			}
		}
		return ma;
	}else {
		vector<int> rem;
		for (int x = 0; x < N; x ++){
			rem.push_back(x);
		}
		vector<int> a, b, c;
		for (int x = 0; x < 20; x ++){
			if (rem.size() == 1){
				break;
			}
			for (int i = 0; i < rem.size()/2; i ++){
				a.push_back(rem[2*i]);
				b.push_back(rem[2*i+1]);
			}
			c = ask(a, b);
			vector<int> nextRem;
			for (int i = 0; i < rem.size()/2; i ++){
				if (c[i] == rem[2*i]){
					nextRem.push_back(rem[2*i]);
				}else {
					nextRem.push_back(rem[2*i + 1]);
				}
			}
			if (rem.size() & 1){
				nextRem.push_back(rem.back());
			}
			swap(nextRem, rem);
		}
		return rem[0];
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Pretests

Pretest #1:

score: 15
Accepted
time: 610ms
memory: 25480kb

input:

1000 1 499500 957319859

output:

Correct
7127326332295218295
1.000000
1331569654267968081

result:

points 1.0 Correct

Pretest #2:

score: 0
Wrong Answer
time: 142ms
memory: 86584kb

input:

1000000 20 2000000 29091473

output:

Too many total elements in queries
1469670942222006797
0.000000
6906350380861515327

result:

points 0.0 Too many total elements in queries


Final Tests

Test #1:

score: 15
Accepted
time: 596ms
memory: 25276kb

input:

1000 1 499500 957319857

output:

Correct
7127326332295218295
1.000000
1331569654267968081

result:

points 1.0 Correct

Test #2:

score: 0
Wrong Answer
time: 120ms
memory: 86256kb

input:

1000000 20 2000000 29091471

output:

Too many total elements in queries
1469670942222006797
0.000000
6906350380861515327

result:

points 0.0 Too many total elements in queries