题解:B4056 [语言月赛 202411] 卡牌
考察双重循环。
用一个循环枚举每一个卡包,每个卡包用一个变量记录能买下的最贵的卡牌,使用第二维循环读入卡牌的面额,按题意模拟即可,代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,x,c[6];
int main(){
cin>>x>>n;
for(int i=1;i<=n;i++){
int Mx=0;
for(int j=1;j<=5;j++){
int k;
cin>>k;
if(k<=x)Mx=max(Mx,k);
}
c[Mx]++,x-=Mx;
}
for(int i=1;i<=5;i++)cout<<c[i]<<" ";
cout<<'\n';
cout<<x;
return 0;
}