답안 #921903

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
921903 2024-02-04T13:30:51 Z thunopro 쌀 창고 (IOI11_ricehub) C++14
컴파일 오류
0 ms 0 KB
#include<bits/stdc++.h>
#include "ricehub.h"
using namespace std ; 
#define ll long long 
#define maxn 500009 
#define fi first 
#define se second 
#define pb push_back 
#define left id<<1 
#define right id<<1|1 
#define re exit(0); 
#define _lower(v,x) lower_bound(v.begin(),v.end(),x)-v.begin()+1  
 
const int mod = 1e9+7 ; 
const int INF = 1e9 ; 
const int LOG = 18 ; 
 
typedef vector<int> vi ; 
typedef pair<int,int> pii ; 
typedef vector<ll> vl ; 
typedef vector<pii> vii ; 
 
void add ( int &a , int b ) 
{
	a += b ;
	if ( a < 0 ) a += mod ; 
	if ( a >= mod ) a -= mod ; 
}
 
template < typename T > void chkmin ( T &a , T b ) { if ( a > b ) a = b ; } 
template < typename T > void chkmax ( T &a , T b ) { if ( a < b ) a = b ; } 
 
void rf () 
{
	freopen ("bai1.inp","r",stdin) ; 
}
 
int _pow ( int a , int n ) 
{
	if ( n == 0 ) return 1 ; 
	int res = _pow (a,n/2) ; 
	if ( n % 2 ) return 1ll*res*res%mod*a%mod ; 
	else return 1ll*res*res%mod ; 
}

int n , m ; 
int a [maxn] ; 
ll budget ; 

ll sum [maxn] ; 

void prepare () 
{
	for ( int i = 1 ; i <= n ; i ++ ) sum [i] = sum [i-1] + a [i] ; 
}

ll get ( int l , int r ) 
{
	return sum [r] - sum [l-1] ; 
}
ll calc ( int l , int r ) 
{
	int mid = (l+r)/2 ; 
	return 1ll*a[mid]*(mid-l+1)-get(l,mid)+get(mid+1,r)-1ll*(r-mid)*a[mid] ; 
}

int solve () 
{
	prepare () ; 
	
	int res = 0 ; 
	
	for ( int i = 1 ; i <= n ; i ++ ) 
	{
		int l = i , r = n ;
		int pos = - 1;  
		while ( l <= r ) 
		{
			int mid = (l+r)/2 ; 
			if ( calc (i,mid) <= budget ) l = mid + 1 , pos = mid ; 
			else r = mid - 1 ; 
		}
		chkmax (res,pos-i+1) ; 
	}
	
	return res ; 
	
}

int _R , _L , _X [maxn] ; 
ll _B ; 

int best_hub ( int R , int L , int X [] , ll B ) 
{
	n = R , m = L ; 
	for ( int i = 1 ; i <= n ; i ++ ) a [i] = X [i-1] ; 
	budget = B ; 
	return solve () ; 
}
//int main () 
//{
//	ios_base::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//	rf () ;
//	
//	cin >> _R >> _L >> _B ; 
//	for ( int i = 0 ; i < _R ; i ++ ) cin >> _X [i] ; 
//	
//	cout << best_hub (_R,_L,_X,_B) ; 	
//	
//}

Compilation message

ricehub.cpp: In function 'void rf()':
ricehub.cpp:35:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 |  freopen ("bai1.inp","r",stdin) ;
      |  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccLRod8R.o: in function `main':
grader.cpp:(.text.startup+0xae): undefined reference to `besthub(int, int, int*, long long)'
collect2: error: ld returned 1 exit status