답안 #111647

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
111647 2019-05-16T00:34:06 Z andremfq 쌀 창고 (IOI11_ricehub) C++17
컴파일 오류
0 ms 0 KB
#include<bits/stdc++.h>
#include"ricehub.h"
#define debug(args...)	fprintf(stderr,args)
using namespace std;
const int MAXR=100010;

long long int R,L,X[MAXR];
long long int sp1[MAXR],sp2[MAXR],resp,x[MAXR];
long long int B;

int besthub(int r,int l,int v[],long long int b)
{	
	sort(v,v+r);
	for(int i=0;i<r;i++)	x[i+1]=v[i];
	
	for(int i=2;i<=r;i++)	sp1[i]=sp1[i-1]+x[i];
	
	for(int i=r-1;i>0;i--)	sp2[i]=sp2[i+1]+x[i];
	
	int ini=1,	fim=1;
	while(fim<r)
	{
		if(ini>fim)		fim++;
		
		int m=(ini+fim)/2;
		
		int op1=sp1[fim]-sp1[m]-((fim-m)*x[m]);
		
		int op2=sp1[m-1]-sp1[ini-1]-((m-1-ini)*(x[r]-x[m]));
		
		if(op1+op2<=b)	fim++,	resp=max(resp,fim-ini+1);
		else ini++;
	}
	
	return resp;
}
/*
int main ()
{	
	scanf("%lld %lld",&R,&L);
	
	for(int i=0;i<R;i++)	scanf("%lld",&X[i]);
	
	scanf("%lld",&B);
	
	long long int RESP=besthub(R,L,X,B);
	
	printf("%lld\n",RESP);
}
/*
5 20 
1 2 10 12 14
6
*/

Compilation message

ricehub.cpp:50:1: warning: "/*" within comment [-Wcomment]
 /*
  
ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:31:48: error: no matching function for call to 'max(long long int&, int)'
   if(op1+op2<=b) fim++, resp=max(resp,fim-ini+1);
                                                ^
In file included from /usr/include/c++/7/bits/specfun.h:45:0,
                 from /usr/include/c++/7/cmath:1914,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:41,
                 from ricehub.cpp:1:
/usr/include/c++/7/bits/stl_algobase.h:219:5: note: candidate: template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)
     max(const _Tp& __a, const _Tp& __b)
     ^~~
/usr/include/c++/7/bits/stl_algobase.h:219:5: note:   template argument deduction/substitution failed:
ricehub.cpp:31:48: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   if(op1+op2<=b) fim++, resp=max(resp,fim-ini+1);
                                                ^
In file included from /usr/include/c++/7/bits/specfun.h:45:0,
                 from /usr/include/c++/7/cmath:1914,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:41,
                 from ricehub.cpp:1:
/usr/include/c++/7/bits/stl_algobase.h:265:5: note: candidate: template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)
     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
     ^~~
/usr/include/c++/7/bits/stl_algobase.h:265:5: note:   template argument deduction/substitution failed:
ricehub.cpp:31:48: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   if(op1+op2<=b) fim++, resp=max(resp,fim-ini+1);
                                                ^
In file included from /usr/include/c++/7/algorithm:62:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:65,
                 from ricehub.cpp:1:
/usr/include/c++/7/bits/stl_algo.h:3462:5: note: candidate: template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)
     max(initializer_list<_Tp> __l)
     ^~~
/usr/include/c++/7/bits/stl_algo.h:3462:5: note:   template argument deduction/substitution failed:
ricehub.cpp:31:48: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   if(op1+op2<=b) fim++, resp=max(resp,fim-ini+1);
                                                ^
In file included from /usr/include/c++/7/algorithm:62:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:65,
                 from ricehub.cpp:1:
/usr/include/c++/7/bits/stl_algo.h:3468:5: note: candidate: template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)
     max(initializer_list<_Tp> __l, _Compare __comp)
     ^~~
/usr/include/c++/7/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
ricehub.cpp:31:48: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   if(op1+op2<=b) fim++, resp=max(resp,fim-ini+1);
                                                ^