QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#502401#9156. 百万富翁phlap#81.999975 2425ms95816kbC++201.4kb2024-08-03 05:04:302024-08-03 05:04:31

Judging History

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

  • [2024-08-03 05:04:31]
  • 评测
  • 测评结果:81.999975
  • 用时:2425ms
  • 内存:95816kb
  • [2024-08-03 05:04:30]
  • 提交

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);
  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: 611ms
memory: 24484kb

input:

1000 1 499500 957319859

output:

Correct
7127326332295218295
1.000000
1331569654267968081

result:

points 1.0 Correct

Pretest #2:

score: 67
Acceptable Answer
time: 2359ms
memory: 90628kb

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: 625ms
memory: 23056kb

input:

1000 1 499500 957319857

output:

Correct
7127326332295218295
1.000000
1331569654267968081

result:

points 1.0 Correct

Test #2:

score: 67
Acceptable Answer
time: 2425ms
memory: 95816kb

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