답안 #787485

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
787485 2023-07-19T08:28:49 Z acatmeowmeow 쌀 창고 (IOI11_ricehub) C++11
100 / 100
15 ms 2496 KB
#include "ricehub.h"
#include <bits/stdc++.h>

using namespace std;

const int N = 1e5;
long long prefix[N + 5];

int besthub(int R, int L, int X[], long long B) {
	for (int i = 1; i <= R; i++) prefix[i] = prefix[i - 1] + (long long)X[i - 1];
	int l = 1, r = R, ans = 0;
	while(l <= r) {
		int m = (l + r)/2, valid = 0;
		for (int i = m; i <= R; i++) {
			int j = i - m + 1, median = (i + j)/2;
			long long f = prefix[i] - prefix[median] - (long long)(i - median)*X[median - 1];
			long long se = (long long)(median - j + 1)*X[median - 1] - (prefix[median] - prefix[j - 1]);
			valid |= f + se <= B;
		}
		if (valid) ans = m, l = m + 1;
		else r = m - 1;
	}
	return ans;
}

/*#include "ricehub.h"
#include <stdio.h>
#include <stdlib.h>

#define MAX_R  1000000

static int R, L;
static long long B;
static int X[MAX_R];
static int solution;

inline
void my_assert(int e) {if (!e) abort();}

static void read_input()
{
  int i;
  //my_assert(3==scanf("%d %d %lld",&R,&L,&B));
  cin >> R >> L >> B;
  for(i=0; i<R; i++)
   // my_assert(1==scanf("%d",&X[i]));
   cin >> X[i];
  //my_assert(1==scanf("%d",&solution));
}

int main()
{
  int ans;
  read_input();
  ans = besthub(R,L,X,B);
  if(ans==solution)
    printf("Correct.\n");
  else
    printf("Incorrect.  Returned %d instead of %d.\n",ans,solution);

  return 0;
}*/

# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 308 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 304 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 284 KB Output is correct
11 Correct 1 ms 308 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 304 KB Output is correct
23 Correct 1 ms 212 KB Output is correct
24 Correct 0 ms 308 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Correct 1 ms 212 KB Output is correct
27 Correct 1 ms 212 KB Output is correct
28 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 304 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 308 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 308 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Correct 1 ms 312 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 1 ms 352 KB Output is correct
25 Correct 1 ms 340 KB Output is correct
26 Correct 1 ms 316 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 596 KB Output is correct
2 Correct 3 ms 680 KB Output is correct
3 Correct 10 ms 2472 KB Output is correct
4 Correct 10 ms 2444 KB Output is correct
5 Correct 6 ms 1176 KB Output is correct
6 Correct 7 ms 1204 KB Output is correct
7 Correct 15 ms 2132 KB Output is correct
8 Correct 9 ms 2224 KB Output is correct
9 Correct 6 ms 1108 KB Output is correct
10 Correct 6 ms 1108 KB Output is correct
11 Correct 10 ms 2424 KB Output is correct
12 Correct 10 ms 2496 KB Output is correct
13 Correct 6 ms 1236 KB Output is correct
14 Correct 6 ms 1236 KB Output is correct
15 Correct 12 ms 1868 KB Output is correct
16 Correct 7 ms 1876 KB Output is correct
17 Correct 9 ms 2192 KB Output is correct
18 Correct 9 ms 2260 KB Output is correct
19 Correct 9 ms 2340 KB Output is correct
20 Correct 9 ms 2368 KB Output is correct