Submission #278745

#TimeUsernameProblemLanguageResultExecution timeMemory
278745PbezzSure Bet (CEOI17_sure)C++14
100 / 100
118 ms5248 KiB
#include <bits/stdc++.h>
using namespace std;

#define loop(i,n) for (ll i = 0; i < n; i++)

#define ll long long
#define INF 100005
#define MOD 1000000007
#define pb push_back 
#define mp make_pair
typedef pair<ll,ll> pii;

const ll MAXN=1e6; 
ll a[MAXN+1];

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	ll n,i,L;
	double k;
	cin>>n;
	double a[n+1],b[n+1];
	double Sa[n+1],Sb[n+1];

	Sa[0]=0; Sb[0]=0; a[0]=INF; b[0]=INF;

	for(i=1;i<=n;i++){

	cin>>a[i]>>b[i];
	}
	sort(a,a+n+1,greater<double>());
	sort(b,b+n+1,greater<double>());

	for(i=1;i<=n;i++){

	Sa[i]=Sa[i-1]+a[i];
	Sb[i]=Sb[i-1]+b[i];

		}

	double ans=0;

	for(i=1;i<=n;i++){//cout<<i<<" ";

	k=Sa[i];

	L=upper_bound(Sb,Sb+n+1,k)-Sb;

	//cout<<i<<" "<<k<<"  "<<L<<endl;

	if(L>1){

	k = Sb[L-1] -(L-1)-i;
	ans = max(ans,k);//cout<<k<<" ";
	}

	if(L!=n+1){

	k = Sa[i]-i-L;
	ans = max(ans,k);//cout<<k<<" ";

	}
//cout<<endl;

}

	printf("%.4lf\n",(double)ans);

return 0; 
}

/*
4
1.4 3.7
1.2 2
1.6 1.4
1.9 1.5

printf("%.4lf %.4lf\n",(double)a[i],(double)b[i]);
*/

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...