题目数据范围小,开两个数组手写冒泡应该也能过,不过和之前在牛客上的一题类似用结构体数组就好了,主要是注意用结构体数组的排序

题目

题目描述

又是一年秋季时,陶陶家的苹果树结了n个果子。陶陶又跑去摘苹果,这次她有一个a公分的椅子。当他手够不着时,他会站到椅子上再试试。

这次与NOIp2005普及组第一题不同的是:陶陶之前搬凳子,力气只剩下s了。当然,每次摘苹果时都要用一定的力气。陶陶想知道在s<0之前最多能摘到多少个苹果。

现在已知n个苹果到达地上的高度xi,椅子的高度a,陶陶手伸直的最大长度b,陶陶所剩的力气s,陶陶摘一个苹果需要的力气yi,求陶陶最多能摘到多少个苹果。

n<=5000 a<=50 b<=200 s<=1000

输入输出格式

输入格式:

第1行:两个数 苹果数n,力气s。

第2行:两个数 椅子的高度a,陶陶手伸直的最大长度b。

第3行~第3+n-1行:每行两个数 苹果高度xi,摘这个苹果需要的力气yi

输出格式:

只有一个整数,表示陶陶最多能摘到的苹果数。

输入样例#1:


输出样例#1:

4

答案

 #include <bits/stdc++.h>

 using namespace std;
const int N = + ;
int n, s, a, b, ans; struct app
{
int x;
int y;
}c[N]; bool cmp(app aa, app bb) //结构体排序
{
return aa.y < bb.y;
} int main()
{
cin >> n >> s >> a >> b;
for(int i = ; i < n; i ++ )
scanf("%d%d",&c[i].x,&c[i].y); sort(c, c+n, cmp);
for(int i = ; i < n; i ++ )
{
if(c[i].x <= (a + b))
{
s -= c[i].y;
if(s < ) break;
ans ++ ;
}
}
cout << ans;
return ;
}

最新文章

  1. 关于ZedGraph
  2. MySQL错误:Every derived table must have its own alias
  3. kmeans理解
  4. 使用 google gson 转换Timestamp为JSON字符串
  5. (转)IIS7 下部署Asp.net应用
  6. Uniconnection 连 mysql 有时会断线的
  7. HDU 3172 Virtual Friends(并用正确的设置检查)
  8. 【Java 并发】详解 ThreadPoolExecutor
  9. webpack中利用require.ensure()实现按需加载
  10. 微信小程序之获取验证码js
  11. 输入和输出--RandomAccessFile类
  12. 第九次java课堂笔记
  13. HDU - 3974 Assign the task (线段树区间修改+构建模型)
  14. 性能测试三十五:jvm垃圾回收-GC
  15. Centos7 中lvs DR配置
  16. LeetCode71.简化路径
  17. 【LeetCode】 Valid Sudoku
  18. Unity/C#基础复习(3) 之 String与StringBuilder的关系
  19. 客户端负载均衡:Ribbon
  20. Go Flow Control

热门文章

  1. [Luogu] P4366 [Code+#4]最短路
  2. 首次开通blog,以后会慢慢把oneNote和印象笔记的笔记转过来
  3. 转载:tomcat实现热部署的配置
  4. array copy rotate in Pointwise
  5. java之比较两个日期大小----https://blog.csdn.net/dongfangbaiyun/article/details/51225469
  6. Leetcode 115.不同的子序列
  7. MVC系统学习4—ModelMetaData
  8. Ubuntu16.04再次装机记
  9. HDU 1212 大整数的取模运算
  10. 魔法猪学院(codevs 1835)