有没有更简单的做法
查看原帖
有没有更简单的做法
1545314
Westbrook_楼主2024/11/24 10:37
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10; 
int a[N][N],b[N]={0};//a数组用来输入,b数组用来统计不同面额有多少张 
int main(){	
    int x,n;
    cin>>x>>n;
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=5;j++){
    		cin>>a[i][j];//输入a数组 
		}
	}
	int maxx=-1;//让maxx的值尽可能小,用来下面比大小 
	for(int i=1;i<=n;i++){
    	for(int j=1;j<=5;j++){
    		if(x>=a[i][j]){//如果说目前x够买目前的卡 
    			maxx=max(maxx,a[i][j]);//那么目前能所购买的最大值赋给maxx 
			}
		}
		b[maxx]++;//b数组中第maxx的面值数量++ 
		if(maxx!=-1)//在目前这一个卡包中,有能买的,才用x减maxx 
		  x-=maxx;
		maxx=-1;//每一行的maxx找完后更新成-1给下一行做判断 
	}
	for(int i=1;i<=5;i++){
		cout<<b[i]<<" ";//输出 
	}
	cout<<endl;
	cout<<x;//输出 
}
2024/11/24 10:37
加载中...