GESP7级模拟赛T190分求调

image
image

90分代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
struct node{
	int a,b; double c,d,w;
}ar[25];
int n,m;double x,y;
bool cmp(node a,node b){
	return a.w>b.w;
}
int sum;
signed main(){
	cin>>n>>m>>x>>y;
	double k=y/x;
	for(int i=1;i<=m;i++){
		cin>>ar[i].a>>ar[i].b>>ar[i].c>>ar[i].d;
		ar[i].w=ar[i].d/ar[i].c;
	}
	sort(ar+1,ar+1+m,cmp);
	for(int i=1;i<=m;i++){
		if(ar[i].w<k||(ar[i].w<=k&&y>=ar[i].d&&x<=ar[i].c&&(n/x)>=(n/ar[i].c))){
			int r4=n/x;
			sum+=r4*y;
			n-=r4*x;
		}
		int r1=ar[i].a/ar[i].b;
		int r2=n/ar[i].c;
		int r3=min(r1,r2);
		sum+=ar[i].d*r3;
		n-=r3*ar[i].c;
	}
	int r5=n/x;
	while(r5>0){
		sum+=r5*y;
		n-=r5*x;
		r5=n/x;
	}
	
	cout<<sum;
	return 0;
}