QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#502434 | #9156. 百万富翁 | phlap | 81.999975 | 2448ms | 95932kb | C++20 | 1.4kb | 2024-08-03 05:41:40 | 2024-08-03 05:41:48 |
Judging History
answer
#include "richest.h"
#include <bits/stdc++.h>
using namespace std;
void thing(vector<int> &vec, int block, int n){
vector<int> group;
vector<int> query1, query2;
for(int i=0; i<vec.size(); i++){
group.push_back(vec[i]);
if(group.size()==block){
for(int j=0; j<block; j++){
for(int k=0; k<j; k++){
query1.push_back(group[j]);
query2.push_back(group[k]);
}
}
group.clear();
}
}
for(int j=0; j<group.size(); j++){
for(int k=0; k<j; k++){
query1.push_back(group[j]);
query2.push_back(group[k]);
}
}
if(query1.empty()) return;
int isless[n];
memset(isless, 0, sizeof isless);
vector<int> result=ask(query1, query2);
for(int i=0; i<query1.size(); i++){
if(result[i]==query1[i]) isless[query2[i]]=1;
else isless[query1[i]]=1;
}
vec.clear();
for(auto i: result) if(!isless[i]) vec.push_back(i);
if(group.size()==1) vec.push_back(group[0]);
sort(vec.begin(), vec.end());
vec.erase(unique(vec.begin(), vec.end()), vec.end());
}
int richest(int n, int t, int s){
vector<int> vec;
for(int i=0; i<n; i++) vec.push_back(i);
if(t==1){
thing(vec, n, n);
return vec[0];
}
thing(vec, 2, n);
thing(vec, 2, n);
thing(vec, 2, n);
thing(vec, 2, n);
thing(vec, 3, n);
thing(vec, 6, n);
thing(vec, 19, n);
s=0;
thing(vec, 183, n);
return vec[0];
}
Details
Tip: Click on the bar to expand more detailed information
Pretests
Pretest #1:
score: 15
Accepted
time: 628ms
memory: 24288kb
input:
1000 1 499500 957319859
output:
Correct 7127326332295218295 1.000000 1331569654267968081
result:
points 1.0 Correct
Pretest #2:
score: 67
Acceptable Answer
time: 2376ms
memory: 90544kb
input:
1000000 20 2000000 29091473
output:
Partially correct Case 2, 67 / 85, maxt = 8, maxs = 1099960 2586970244946203279 0.788235 12006835993993373281
result:
points 0.788235 Partially correct Case 2, 67 / 85, maxt = 8, maxs = 1099960
Final Tests
Test #1:
score: 15
Accepted
time: 636ms
memory: 23004kb
input:
1000 1 499500 957319857
output:
Correct 7127326332295218295 1.000000 1331569654267968081
result:
points 1.0 Correct
Test #2:
score: 67
Acceptable Answer
time: 2448ms
memory: 95932kb
input:
1000000 20 2000000 29091471
output:
Partially correct Case 2, 67 / 85, maxt = 8, maxs = 1099960 2586970244946203279 0.788235 12006835993993373281
result:
points 0.788235 Partially correct Case 2, 67 / 85, maxt = 8, maxs = 1099960