列表

详情


NC214219. 黑大火与他的猫

描述

白小水是只可爱的白猫,它的铲屎官黑大火是个善解人意的汉子,为了他家的小公举而努力奋斗。

遇见白小水之前,黑大火只是一个懵懂的少年。只是后来偶然在路边对视了一眼,却从此成为了心中执念。

他觉得大概这辈子就栽在它手上了吧,它的一举一动总能拉扯着他的心弦。

所以,今天黑大火又要为白小水准备好吃的猫粮了,写题的你愿意帮助一下他们么?

黑大火现在拥有的金钱数为 N,有 M 种白小水喜欢的猫粮从左到右排列,已知每种猫粮的价格 ai,他的购买规则如下:

  1. 必须按照从左到右的顺序购买,如果可以买这种猫粮则一定购买,每种猫粮只能购买一个,买完第一种猫粮买第二种猫粮,以此类推。
  2. 如果遇到金额不足的情况,将跳过该猫粮,购买下一种猫粮,直到结束。

输出他最多能买多少种猫粮。

输入描述

第一行输入一个整数T,代表有T组测试数据。

每组数据第一行包括一个N和M(1 <= N <=100,1<= M <= 100)

第二行包括以空格间隔开的M个数a1,a2,a3…,aM(1<= ai<= 100)

输出描述

每组数据对应只有1行输出,输出最大购买数。

示例1

输入:

2
10 4
1 1 10 1
10 5
1 2 3 4 5

输出:

3
4

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++ 11.0.1) 解法, 执行用时: 4ms, 内存消耗: 408K, 提交时间: 2022-12-20 16:00:13

#include<iostream>
using namespace std;
int main(void)
{
	int t; cin>>t;
	while(t--)
	{
		int n,m; cin>>n>>m;
		int x,cnt=0;
		for(int i=0;i<m;i++)
		{
			cin>>x;
			if(n>=x) cnt++,n-=x;
		}
		cout<<cnt<<endl;
	}
}

C++(g++ 7.5.0) 解法, 执行用时: 4ms, 内存消耗: 420K, 提交时间: 2022-11-13 17:10:33

#include<iostream>
using namespace std;
int main()
{
	int t; cin>>t;
	while(t--)
	{
		int n,m; cin>>n>>m;
		int x,cnt=0;
		for(int i=0;i<m;i++)
		{
			cin>>x;
			if(n>=x) cnt++,n-=x;
		}
		cout<<cnt<<endl;
	}
}

C(gcc 7.5.0) 解法, 执行用时: 2ms, 内存消耗: 284K, 提交时间: 2023-01-16 10:37:24

#include<stdio.h>
int main()
{int n,k,m,a,b;
scanf("%d",&n);
while(n--)
{scanf("%d %d",&k,&m);b=0;
while(m--)
{scanf("%d",&a);
if(k>=a)
{ b++;k-=a;}}printf("%d\n",b);}}

Python3 解法, 执行用时: 28ms, 内存消耗: 4528K, 提交时间: 2021-12-10 12:17:02

for i in range(int(input())):
    n,m=map(int,input().split())
    print(len([n:=n-j for j in map(int,input().split())if n>=j]))

上一题