c/c++ 洛谷 P1003 【NOIP2011 提高组】 铺地毯

题目链接

洛谷 P1003 【NOIP2011 提高组】 铺地毯

不想戳的看下图:

在这里插入图片描述

样例及解释

在这里插入图片描述

数据范围

在这里插入图片描述

解题思路:
从后往前找地毯,找到了我就输出并返回。

代码如下:

#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版权协议,转载请附上原文出处链接和本声明。