欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

洛谷P1478 陶陶摘苹果(升级版)

程序员文章站 2024-03-24 13:59:52
...

洛谷P1478 陶陶摘苹果(升级版)
洛谷P1478 陶陶摘苹果(升级版)

洛谷P1478 陶陶摘苹果(升级版)

#include<stdio.h>

#define max 6000  //申请的空间一开始是1000,有一组样例没通过;申请的数组空间不够;

int main()
{
	int n,s;
	int a,b;
	scanf("%d %d",&n,&s);
	scanf("%d %d",&a,&b);

	int x[max],y[max],i;
	for(i = 0;i < n;i++){
		scanf("%d %d",&x[i],&y[i]);
	}
	
	int j,temp;
	for(i = 0;i < n-1;i++){
		for(j = 0;j < n-i-1;j++){
			if(y[j] > y[j+1]){
				temp = y[j];
				y[j] = y[j+1];
				y[j+1] = temp;
				
				temp = x[j];
				x[j] = x[j+1];
				x[j+1] = temp;
			}
		}
	}
	int cnt=0;//一开始没有赋初值,导致样例全部没有通过;
	for(i = 0;i < n;i++){
		if(a+b >= x[i] && s >= y[i]){
			cnt++;
			s -= y[i];
		}
	}
	printf("%d",cnt); 
	
	return 0;
}

总计:1. 做题要看清数据范围,申请数组空间要足够;
2.对与sum,cnt等计数,求和变量要注意赋初值;

相关标签: 用法