#include <bits/stdc++.h>
#pragma GCC optimize("O3","unroll-loop")
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()
bool comp(pair<ll,ll>a,pair<ll,ll>b){
if(a.ss<b.ss) return true;
if(a.ss>b.ss) return false;
return a.ff<b.ff;
}
int main(){
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll N,K;
cin>>N>>K;
pair<ll,ll>p[N+5];
for(ll i=1;i<=N;i++){
cin>>p[i].ff>>p[i].ss;
if(p[i].ss==-1) p[i].ss=1e6;
}
sort(p+1,p+N+1,comp);
double a[N+5],b[N+5];
for(ll i=1;i<=N;i++){
a[i]=p[i].ff;
b[i]=p[i].ss;
}
double dp[N+5][N+5][N+5],ans=1e9;
for(ll goal=0;goal<=K;goal++){
for(ll i=0;i<=N;i++){
for(ll j=0;j<=min(i,K);j++){
if(i==j){
for(ll k=0;k<=goal;k++){
dp[i][j][k]=1e9;
}
}
else{
dp[i][j][goal]=1e9;
}
}
}
dp[0][0][0]=0;
for(ll i=0;i<N;i++){
for(ll j=0;j<=min(i,K);j++){
if(i==j){
for(ll k=0;k<=goal;k++){
dp[i+1][j][k]=min(dp[i+1][j][k],dp[i][j][k]);
dp[i+1][j+1][k]=min(dp[i+1][j+1][k],dp[i][j][k]+a[i+1]/(double)(goal+1));
dp[i+1][j+1][k+1]=min(dp[i+1][j+1][k+1],dp[i][j][k]+b[i+1]/(double)(k+1));
}
}
else{
dp[i+1][j][goal]=min(dp[i+1][j][goal],dp[i][j][goal]);
dp[i+1][j+1][goal]=min(dp[i+1][j+1][goal],dp[i][j][goal]+a[i+1]/(double)(goal+1));
}
}
}
ans=min(ans,dp[N][K][goal]);
}
cout<<setprecision(10)<<ans;
}
컴파일 시 표준 에러 (stderr) 메시지
Main.cpp:2:40: warning: bad option '-funroll-loop' to pragma 'optimize' [-Wpragmas]
2 | #pragma GCC optimize("O3","unroll-loop")
| ^
Main.cpp:13:36: warning: bad option '-funroll-loop' to attribute 'optimize' [-Wattributes]
13 | bool comp(pair<ll,ll>a,pair<ll,ll>b){
| ^
Main.cpp:19:10: warning: bad option '-funroll-loop' to attribute 'optimize' [-Wattributes]
19 | int main(){
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |