1. 程式人生 > 其它 >聯合省選 JSOI2022 遊記

聯合省選 JSOI2022 遊記

題目詳情 - 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; }