Submission #938944

#TimeUsernameProblemLanguageResultExecution timeMemory
938944PacybwoahLet's Win the Election (JOI22_ho_t3)C++17
21 / 100
816 ms4440 KiB
#include<iostream> #include<vector> #include<iomanip> #include<utility> #include<algorithm> #define ld long double using namespace std; vector<pair<ld,ld>> vec; int n,k; ld solve(int m){ vector<vector<ld>> dp(n+1,vector<ld>(k-m+1,1e9+7)); dp[1][0]=(m>0?vec[1].first:0); if(k-m>0) dp[1][1]=vec[1].second; for(int i=2;i<=n;i++){ for(int j=0;j<=min(k-m,i);j++){ if(i!=j) dp[i][j]=min(dp[i][j],dp[i-1][j]+(i-j>m?0:vec[i].first/(long double)(i-j))); if(j>0) dp[i][j]=min(dp[i][j],dp[i-1][j-1]+vec[i].second/(long double)(m+1)); } } /*for(int i=1;i<=n;i++){ for(int j=0;j<=k-m;j++) if(m==2) cout<<dp[i][j]<<" "; cout<<"\n"; }*/ return dp[n][k-m]; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cin>>n>>k; vec.resize(n+1); for(int i=1;i<=n;i++) cin>>vec[i].second>>vec[i].first; for(int i=1;i<=n;i++) if(vec[i].first==-1) vec[i].first=1e9; sort(next(vec.begin()),vec.end()); int l=0,r=k; ld ans=1e9+7; /*while(l<r){ int mid=(l+r)>>1; ld a=solve(max(mid,0)),b=solve(min(mid+1,r)); ans=min(ans,min(a,b)); if(a>b) l=min(mid+1,r); else r=(max(mid,0)); }*/ for(int i=0;i<=k;i++) ans=min(ans,solve(i)); cout<<fixed<<setprecision(12)<<ans; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:34:9: warning: unused variable 'l' [-Wunused-variable]
   34 |     int l=0,r=k;
      |         ^
Main.cpp:34:13: warning: unused variable 'r' [-Wunused-variable]
   34 |     int l=0,r=k;
      |             ^
#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...