Submission #937341

#TimeUsernameProblemLanguageResultExecution timeMemory
937341Marco_EscandonLet's Win the Election (JOI22_ho_t3)C++11
56 / 100
2598 ms6676 KiB
#include<bits/stdc++.h> #define optimizar_io ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);cout.setf(ios::fixed);cout.precision(15); #pragma GCC optimize("Ofast") using namespace std; typedef long long ll; #define x first #define y second pair<double,double> cad[501]; double sol(ll l,ll n,ll m) { vector<vector<vector<double>>> dp(2,vector<vector<double>>(m+3,vector<double>(m+3,1e9))); dp[0][1][1]=0; double bs=1e9; for(int i=1; i<=n; i++) { for(int j=1; j<=m+1; j++) { for(int k=1; k<=m+1; k++) { double temp=1e9; temp=min(temp,dp[0][j][k]); temp=min(temp,dp[0][j][k-1]+cad[i].y/l); if(cad[i].first!=-1&&j!=1) temp=min(temp,dp[0][j-1][k-1]+cad[i].x/(j-1)); dp[1][j][k]=temp; if(k==m+1&&j==l) bs=min(bs,dp[1][j][k]); } //cout<<"\n"; } swap(dp[0],dp[1]); //cout<<"\n\n"; } return bs; } int main() { optimizar_io ll n,m; cin>>n>>m; cad[0]={-1,-1}; for(int i=1; i<=n; i++) cin>>cad[i].second>>cad[i].first; sort(cad,cad+n+1); double bs=1e9; for(int i=1; i<=m+1; i++) { bs=min(sol(i,n,m),bs); //cout<<sol(i,n,m)<<" "; } cout<<bs; }
#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...