陶陶摘苹果,苹果摘陶陶
【出自洛谷题库】C++
陶陶摘苹果:
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
这是一道非常简单非常基础的题目
但他的孪生题目就非常有趣
我们先看看这道简单的题目
代码如下
#include <iostream>using namespace std;int main(){int a[11];//苹果高度int b;//涛涛最高可摘得高度int c=0;//个数for(int i=1;i<=10;i++){cin>>a[i];}cin>>b;b=b+30;for(int i=1;i<=10;i++){if(b>=a[i]){c++;}}cout<<c;return 0;}
好的,下面我们来看看这道非常有“灵魂”的题目:
苹果摘陶陶
去年苹果们被陶陶摘下来后都很生气,于是就用最先进的克隆技术把陶陶克隆了很多份,然后把他们挂在树上让苹果们摘。 摘取的规则是:苹果们排好队轮流摘取,一个苹果只能摘一个陶陶,且只能摘在他所能摘到的高度以下(即是小于关系)的最高的陶陶,如果摘不到的话只能灰溜溜的走开。 给出苹果数目及按苹果队伍的顺序给出每个苹果可以够到的高度和各个陶陶的高度,求苹果们都摘完后还剩下多少个陶陶…
是不是很有意思?
#include<iostream>#include<cstdlib>#include<algorithm>//#include <bits/stdc++.h>using namespace std;int main(){int a;int b;cin>>a>>b;int x[a],y[b];for(int i=0;i<a;i++){cin>>x[i];}for(int i=0;i<b;i++){cin>>y[i];}sort(x,x+a);sort(y,y+b);for (int i=a-1;i>=0;i--){for (int j=b-1;j>=0;j--){if (x[i]>y[j]&&y[j]>0){b--;y[j]=0; break;}}}cout<<b<<endl;return 0;}
谢谢