聯合省選 JSOI2022 遊記
阿新 • • 發佈:2022-04-17
題目詳情 - L2-003 月餅 (25 分) (pintia.cn)
23分,有兩分段錯誤不知道錯哪了,不想debug了...
#include<iostream> #include<algorithm> using namespace std; const int N=1e5+10; struct mess{ double a,b,w; }v[N]; bool cmp(mess x,mess y) { return x.w>y.w; } int main(){ int n,s; cin>>n>>s;for(int i=1;i<=n;i++) cin>>v[i].a; for(int i=1;i<=n;i++) cin>>v[i].b; for(int i=1;i<=n;i++) v[i].w=v[i].b/v[i].a*1.0; sort(v+1,v+n+1,cmp); // for(int i=1;i<=n;i++) cout<<v[i].a<<" "<<v[i].b<<" "<<v[i].w<<endl; double sum=0,cnt=0; int k=1; while(1) { sum+=v[k].b; cnt+=v[k].a; // cout<<sum<<" "<<cnt<<endl; if(cnt>s) { sum-=v[k].b; cnt-=v[k].a; int x=s-cnt; if(x<=v[k].a) { sum+=v[k].w*x; break; } } k++; } printf("%.2lf",sum); return 0; }