Submission #878700

#TimeUsernameProblemLanguageResultExecution timeMemory
878700Faisal_SaqibSure Bet (CEOI17_sure)C++17
100 / 100
110 ms4388 KiB
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <iomanip>
using namespace std;
int main()
{
    cout<<fixed<<setprecision(4);
	int n;
	cin>>n;
	vector<double> a,b;
	for(int i=0;i<n;i++)
	{
		double x,y;
		cin>>x>>y;
		a.push_back(x);
		b.push_back(y);
	}
	sort(rbegin(a),rend(a));
	sort(rbegin(b),rend(b));
	vector<double> pre0,pre1;
	pre1=pre0={0};
	for(int i=0;i<n;i++)
	{
		pre0.push_back(pre0.back()+a[i]);
		pre1.push_back(pre1.back()+b[i]);
	}
	pre1.push_back(pre1.back());
	pre0.push_back(pre0.back());
	int j=0;
	double ans=0;
	n++;
	for(int i=0;i<n;i++)
	{
		while(j<n and pre1[j]<pre0[i])
		{
			j++;
		}
		if(pre0[i]<=pre1[j])
			ans=max(ans,pre0[i]-i-j);
	}
	j=0;
	for(int i=0;i<n;i++)
	{
		while(j<=n and pre0[j]<pre1[i])
		{
			j++;
		}
		if(pre0[j]>=pre1[i])
			ans=max(ans,pre1[i]-i-j);
	}
	cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...