Submission #1306405

#TimeUsernameProblemLanguageResultExecution timeMemory
1306405vtnooLet's Win the Election (JOI22_ho_t3)C++20
0 / 100
2595 ms444 KiB
#include <bits/stdc++.h>
#define pb push_back
#define fst first
#define snd second
#define fore(i,a,b) for(int i=a,pao=b;i<pao;++i)
#define SZ(x) ((int)x.size())
#define ALL(x) x.begin(),x.end()
#define mset(a,v) memset((a),(v),sizeof(a))
#define FIN ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
using namespace std;
typedef long long ll;
const int MAXN=505,INF=1e9;
int A[MAXN],B[MAXN];
int main(){FIN;
	int n,k;cin>>n>>k;
	fore(i,0,n){
		cin>>A[i]>>B[i];
	}
	double ans=INF;
	fore(msk,0,(1<<n)){
		vector<int>v,a;
		fore(i,0,n){
			if(msk&(1<<i)){
				v.pb(i);
			}else{
				a.pb(A[i]);
			}
		}
		double d=1,tot=0;
		fore(i,0,SZ(v)){
			if(B[v[i]]!=-1){
				tot+=(double)B[v[i]]/d;
				d++;
			}else tot+=(double)A[v[i]]/d;
		}
		sort(ALL(a));
		fore(i,0,k-SZ(v)){
			tot+=(double)a[i]/d;
		}
		ans=min(ans,tot);
	}
	cout<<fixed<<setprecision(20)<<ans<<endl;
}
#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...