Submission #1193089

#TimeUsernameProblemLanguageResultExecution timeMemory
1193089nuutsnoynton쌀 창고 (IOI11_ricehub)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
#include "ricehub.h"
using ll = long long;

using namespace std;
ll pre_sum[100002];

ll range_sum(ll lo, ll hi) {
	if ( lo == 0) return pre_sum[hi];
	return pre_sum[hi] - pre_sum[lo - 1];
}

ll besthub(ll R, ll L, ll X[], long long B){
	ll lo, hi, mid, lo1, hi1, lo2, hi2, sum;
	for (int i = 0; i < R; i ++) {
		if ( i == 0) pre_sum[i] = X[i];
		else pre_sum[i] = pre_sum[i - 1] + X[i];
	}
	ll s = 0;
	for (int i = 0; i < R; i ++) {
		lo = 0;
		hi = 1e9 + 1;
		while ( lo < hi) {
			mid = (lo + hi)/2;
			sum =0 ;
			lo1 = lower_bound(X, X + R, X[i] - mid) - X;
			hi1 = i;
			lo2 = i;
			hi2 = upper_bound(X, X + R, X[i] + mid) - X - 1;
			sum = sum + (hi1 - lo1 + 1) * X[i] - range_sum(lo1, hi1);
			sum = sum + range_sum(lo2, hi2) - (hi2 - lo2 + 1) * X[i];
			if ( sum <= B) lo = mid + 1;
			else hi = mid;
		}
		lo --;
		mid = lo;
		sum =0 ;
		lo1 = lower_bound(X, X + R, X[i] - mid) - X;
		hi1 = i;
		lo2 = i;
		hi2 = upper_bound(X, X + R, X[i] + mid) - X - 1;
		sum = sum + (hi1 - lo1 + 1) * X[i] - range_sum(lo1, hi1);
		sum = sum + range_sum(lo2, hi2) - (hi2 - lo2 + 1) * X[i];
		s = max(s, hi2 - lo1 + 1);
	}
	
	return s;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccrIROcL.o: in function `main':
grader.cpp:(.text.startup+0xaa): undefined reference to `besthub(int, int, int*, long long)'
collect2: error: ld returned 1 exit status