求助样例不过。
查看原帖
求助样例不过。
943493
LookatSea楼主2024/7/16 11:39

RT,样例输出16我输出160,感觉没什么问题。

#include<bits/stdc++.h>
using namespace std;
struct CF176A{
	int a,b,c,eman;
}; 
bool cmp(CF176A l,CF176A z){
	return l.b>z.b;
}
bool cmp1(CF176A l,CF176A z){
	return l.eman<z.eman;
}
int main(){
	CF176A flc[114][514]; 
	int n,m,y,ans=0,cnt=0,sum=0;
	cin>>n>>m>>y;
	string s;
	for(int i=1;i<=n;i++){
		cin>>s;
		for(int j=1;j<=m;j++){
			cin>>flc[i][j].a>>flc[i][j].b>>flc[i][j].c;
			flc[i][j].eman=j;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			for(int k=1;k<=m;k++)
				flc[j][k].b-=flc[i][k].a;
			sort(flc[j]+1,flc[j]+m+1,cmp);
			for(int k=1;k<=m;k++){
				if(flc[j][k].b<=0) 
					break; 
				int q=flc[j][k].eman;
				if(i==j) q=k;
				if(cnt+flc[i][q].c<y){
					cnt+=flc[i][q].c;
					sum+=flc[i][q].c*flc[j][k].b;
				} else{
					sum+=(y-cnt)*flc[j][k].b;
					break; 
				}
			}
			sort(flc[j]+1,flc[j]+m+1,cmp1);
			for(int k=1;k<=m;k++) flc[i][k].b+=flc[i][k].a;		
		}
	}
	cout<<sum<<'\n';
	return 0;
}
2024/7/16 11:39
加载中...