Submission #69458

# Submission time Handle Problem Language Result Execution time Memory
69458 2018-08-21T01:10:37 Z Diuven The Big Prize (IOI17_prize) C++14
92.02 / 100
82 ms 2364 KB
#include "prize.h"
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
const int MX=200010;

bool up[MX];
int L[MX], R[MX], sum, n;

void search(int s, int e){
	if(s>e) return;
	int m=(s+e)/2;
	vi now=ask(m); L[m]=now[0], R[m]=now[1];
	int lft=L[m]-(s==0 ? 0 : L[s-1]+up[s-1]);
	int rig=R[m]-(e==n-1 ? 0 : R[e+1]+up[e+1]);

	up[m] = L[m]+R[m]<sum;
	if(up[m] || lft>0) search(s,m-1);
	if(up[m] || rig>0) search(m+1,e);
}

int get(){
	pair<int, int> ans={0,0};
	for(int i=0; i<min(100, n); i++){
		vi now=ask(i);
		ans=max(ans, {now[0]+now[1], i});
	}
	sum=ans.first;
	return ans.second;
}

int find_best(int _n){
	n=_n;
	int st=get();
	search(0,n-1);

	for(int i=0; i<n; i++) if(up[i]){
		vi now=ask(i);
		if(now[0]==0 && now[1]==0) return i;
	}
	assert(false);
	return 0;
}

Compilation message

prize.cpp: In function 'int find_best(int)':
prize.cpp:34:6: warning: unused variable 'st' [-Wunused-variable]
  int st=get();
      ^~
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 4 ms 564 KB Output is correct
3 Correct 4 ms 564 KB Output is correct
4 Correct 5 ms 572 KB Output is correct
5 Correct 3 ms 572 KB Output is correct
6 Correct 3 ms 572 KB Output is correct
7 Correct 4 ms 628 KB Output is correct
8 Correct 3 ms 628 KB Output is correct
9 Correct 3 ms 628 KB Output is correct
10 Correct 3 ms 628 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 628 KB Output is correct
2 Correct 3 ms 628 KB Output is correct
3 Correct 4 ms 628 KB Output is correct
4 Correct 3 ms 628 KB Output is correct
5 Correct 4 ms 628 KB Output is correct
6 Correct 4 ms 628 KB Output is correct
7 Correct 3 ms 628 KB Output is correct
8 Correct 3 ms 628 KB Output is correct
9 Correct 3 ms 628 KB Output is correct
10 Correct 4 ms 628 KB Output is correct
11 Correct 9 ms 1668 KB Output is correct
12 Correct 11 ms 1668 KB Output is correct
13 Correct 8 ms 1668 KB Output is correct
14 Correct 11 ms 1668 KB Output is correct
15 Partially correct 44 ms 2248 KB Partially correct - number of queries: 5009
16 Partially correct 56 ms 2248 KB Partially correct - number of queries: 5532
17 Partially correct 48 ms 2248 KB Partially correct - number of queries: 5177
18 Partially correct 63 ms 2248 KB Partially correct - number of queries: 5637
19 Correct 42 ms 2308 KB Output is correct
20 Correct 39 ms 2308 KB Output is correct
21 Partially correct 67 ms 2308 KB Partially correct - number of queries: 5284
22 Correct 50 ms 2312 KB Output is correct
23 Correct 4 ms 2312 KB Output is correct
24 Correct 7 ms 2312 KB Output is correct
25 Partially correct 50 ms 2312 KB Partially correct - number of queries: 5071
26 Partially correct 39 ms 2312 KB Partially correct - number of queries: 5060
27 Correct 5 ms 2312 KB Output is correct
28 Partially correct 43 ms 2312 KB Partially correct - number of queries: 5225
29 Correct 23 ms 2312 KB Output is correct
30 Partially correct 43 ms 2312 KB Partially correct - number of queries: 5595
31 Partially correct 61 ms 2312 KB Partially correct - number of queries: 5124
32 Correct 12 ms 2312 KB Output is correct
33 Correct 2 ms 2312 KB Output is correct
34 Partially correct 52 ms 2312 KB Partially correct - number of queries: 5293
35 Correct 9 ms 2312 KB Output is correct
36 Partially correct 64 ms 2360 KB Partially correct - number of queries: 5262
37 Correct 11 ms 2360 KB Output is correct
38 Correct 4 ms 2360 KB Output is correct
39 Partially correct 52 ms 2360 KB Partially correct - number of queries: 5378
40 Correct 55 ms 2360 KB Output is correct
41 Partially correct 61 ms 2360 KB Partially correct - number of queries: 5465
42 Partially correct 59 ms 2360 KB Partially correct - number of queries: 5465
43 Partially correct 23 ms 2360 KB Partially correct - number of queries: 5253
44 Partially correct 37 ms 2360 KB Partially correct - number of queries: 5338
45 Correct 52 ms 2360 KB Output is correct
46 Partially correct 55 ms 2360 KB Partially correct - number of queries: 5166
47 Correct 53 ms 2360 KB Output is correct
48 Partially correct 29 ms 2360 KB Partially correct - number of queries: 5517
49 Partially correct 54 ms 2360 KB Partially correct - number of queries: 5221
50 Partially correct 53 ms 2360 KB Partially correct - number of queries: 5644
51 Partially correct 54 ms 2360 KB Partially correct - number of queries: 5359
52 Partially correct 43 ms 2360 KB Partially correct - number of queries: 5171
53 Correct 9 ms 2360 KB Output is correct
54 Partially correct 43 ms 2360 KB Partially correct - number of queries: 5307
55 Partially correct 52 ms 2360 KB Partially correct - number of queries: 5168
56 Partially correct 45 ms 2360 KB Partially correct - number of queries: 5630
57 Partially correct 43 ms 2360 KB Partially correct - number of queries: 5452
58 Partially correct 48 ms 2360 KB Partially correct - number of queries: 5525
59 Partially correct 54 ms 2360 KB Partially correct - number of queries: 5463
60 Partially correct 44 ms 2360 KB Partially correct - number of queries: 5384
61 Correct 4 ms 2360 KB Output is correct
62 Correct 5 ms 2360 KB Output is correct
63 Correct 5 ms 2360 KB Output is correct
64 Correct 5 ms 2360 KB Output is correct
65 Correct 6 ms 2360 KB Output is correct
66 Correct 8 ms 2360 KB Output is correct
67 Correct 9 ms 2360 KB Output is correct
68 Correct 4 ms 2360 KB Output is correct
69 Correct 12 ms 2360 KB Output is correct
70 Correct 4 ms 2360 KB Output is correct
71 Partially correct 61 ms 2364 KB Partially correct - number of queries: 5331
72 Correct 9 ms 2364 KB Output is correct
73 Partially correct 46 ms 2364 KB Partially correct - number of queries: 5261
74 Partially correct 58 ms 2364 KB Partially correct - number of queries: 5291
75 Correct 4 ms 2364 KB Output is correct
76 Correct 42 ms 2364 KB Output is correct
77 Partially correct 49 ms 2364 KB Partially correct - number of queries: 5765
78 Correct 12 ms 2364 KB Output is correct
79 Correct 26 ms 2364 KB Output is correct
80 Partially correct 42 ms 2364 KB Partially correct - number of queries: 5793
81 Partially correct 52 ms 2364 KB Partially correct - number of queries: 5771
82 Partially correct 82 ms 2364 KB Partially correct - number of queries: 5759
83 Correct 6 ms 2364 KB Output is correct
84 Correct 55 ms 2364 KB Output is correct
85 Partially correct 45 ms 2364 KB Partially correct - number of queries: 5798
86 Correct 15 ms 2364 KB Output is correct
87 Correct 5 ms 2364 KB Output is correct
88 Correct 12 ms 2364 KB Output is correct
89 Correct 12 ms 2364 KB Output is correct
90 Correct 5 ms 2364 KB Output is correct
91 Correct 6 ms 2364 KB Output is correct
92 Correct 2 ms 2364 KB Output is correct
93 Correct 8 ms 2364 KB Output is correct
94 Correct 6 ms 2364 KB Output is correct
95 Correct 6 ms 2364 KB Output is correct
96 Correct 4 ms 2364 KB Output is correct
97 Correct 5 ms 2364 KB Output is correct