NC16593. [NOIP2011]铺地毯
描述
输入描述
第一行,一个整数n,表示总共有n张地毯。
接下来的n行中,第i+1行表示编号i的地毯的信息,包含四个正整数a,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标(a,b)以及地毯在x轴和y轴方向的长度。
第n+2行包含两个正整数x和y,表示所求的地面的点的坐标(x,y)。
输出描述
输出共1行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出-1。
示例1
输入:
3 1 0 2 3 0 2 3 3 2 1 3 3 2 2
输出:
3
说明:
C++(g++ 7.5.0) 解法, 执行用时: 15ms, 内存消耗: 632K, 提交时间: 2022-12-05 19:47:29
#include<iostream> using namespace std; int main() { int n; cin>>n; int step=-1; for(int i=1;i<=n;i++) { int a,b,g,k; cin>>a>>b>>g>>k; if(g==k) step=i; } cout<<step<<endl; }
Python3 解法, 执行用时: 81ms, 内存消耗: 6776K, 提交时间: 2023-07-02 13:09:15
n=int(input()) f=[] for i in range(1,n+1): a,b,g,k=map(int,input().split()) f.append((a,b,g,k)) x,y=map(int,input().split()) res=-1 for i in range(n): a,b,g,k=f[i] if a<=x<a+g and b<=y<b+k: res=i+1 print(res)
C++(clang++ 11.0.1) 解法, 执行用时: 15ms, 内存消耗: 612K, 提交时间: 2023-05-31 18:38:08
#include<bits/stdc++.h> using namespace std; int main() { int n,f=-1; cin>>n; int a,b,g,k; for(int i=1;i<=n;i++) { cin>>a>>b>>g>>k; if (g==k) f=i; } cout<<f<<endl; }