Submission #1319666

#TimeUsernameProblemLanguageResultExecution timeMemory
1319666Faisal_SaqibLet's Win the Election (JOI22_ho_t3)C++20
0 / 100
125 ms496 KiB
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
#define ld long double
main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,k;
	cin>>n>>k;
	bool use[n+2]={0};
	pair<ld,ld> c[n+2];
	pair<ld,ld> og[n+2];
	pair<ld,int> a[n+2],b[n+2];
	for(int i=0;i<n;i++)
	{
		cin>>a[i].first>>b[i].first;
		if(b[i].first==-1)b[i].first=1e10;
		a[i].second=i;
		b[i].second=i;
		c[i].first=-a[i].first+b[i].first;
		c[i].second=b[i].first;
		og[i].first=a[i].first;
		og[i].second=b[i].first;
		// cout<<"Val ";
		// cout<<og[i].first<<' '<<og[i].second<<' '<<i<<endl;
	}
	cout.precision(4);
	ld ot=0,cst=0;
	sort(a,a+n);
	ld ans=0;
	for(int i=0;i<k;i++)ans+=a[i].first;
	vector<int> allp;
	for(int l=1;l<=k;l++)
	{
		for(int j=0;j<n;j++)
			use[j]=0;
		ld cur=0;
		// cout<<"For "<<l<<endl;
		for(int i=1;i<=l;i++)
		{
			ld mi=1e10;
			int ind=-1;
			for(int j=0;j<n;j++)
			{
				if(use[j])continue;
				ld val=1ll*og[j].second*(l+1) - 1ll*og[j].first*(i);
				if(val<mi)
				{
					mi=val;
					ind=j;
				}
			}
			use[ind]=1;
		// 	cout<<"using "<<ind<<" at "<<i<<endl;
			cur+=(og[ind].second/(ld)i);
		}
		ld sm=0;
		int tlk=k-l;
		for(int j=0;j<n and tlk>0;j++)
		{
			if(use[a[j].second])continue;
			sm+=a[j].first;
			tlk--;
		}
		ans=min(ans,cur+(sm/(l+1)));
	}
	cout<<fixed<<ans<<endl;
}

Compilation message (stderr)

Main.cpp:6:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    6 | main()
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...