题目链接
不想戳的看下图:
样例及解释
数据范围
解题思路:
从后往前找地毯,找到了我就输出并返回。
代码如下:
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
const int maxn = 10000;
int n,x,y;
int a[maxn],b[maxn],g[maxn],k[maxn];//根据个数分配内存(abgk啥意思去看题目)
int main(){
cin>>n;//输入个数
for(int i=0;i<n;i++){
cin>>a[i]>>b[i]>>g[i]>>k[i];//输入地毯
}
cin>>x>>y;
for(int i=n;i>=0;i--){//从后往前找地毯
if(a[i]<=x and b[i]<=y){
if((a[i]+g[i])>=x and (b[i]+k[i])>=y){
cout<<i+1<<endl;//找到了我就输出并返回,由于是从后往前找的,肯定是最后一层
return 0;
}
}
}
cout<<-1<<endl;//从后往前都找完了还没发现,输出-1
return 0;
}
小结
NOIP 的题目确实比较有代表性,可以去刷一下。
版权声明:本文为m0_52319300原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。