60 条题解
-
5
熊.豪 LV 7 @ 8 年前
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>using namespace std;
int main()
{
int n,x,y,ans=-1;
int a[100005],b[100005],g[100005],k[100005];
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i]>>g[i]>>k[i];
}
cin>>x>>y;
for(int j=1;j<=n;j++)
{
if(x>=a[j]&&x<=a[j]+g[j]&&y>=b[j]&&y<=b[j]+k[j])
{
ans=j;
}
}
cout<<ans;
return 0;
} -
27 年前@
好水的题啊啊啊啊啊啊啊啊啊
一开始还以为很难
然后发现n这么小随随便便就过了
```cpp
#include<bits/stdc++.h>
using namespace std;
int n;
int a[1000000][4];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i][0]>>a[i][1]>>a[i][2]>>a[i][3];
int t1,t2;
cin>>t1>>t2;
for(int i=n;i>=1;i--)if(t1>=a[i][0]&&t1<=a[i][0]+a[i][2]&&t2>=a[i][1]&&t2<=a[i][1]+a[i][3])
{
cout<<i;
return 0;
}
cout<<-1;
return 0;}
``` -
13 年前@
-
16 年前@
Accepted
状态 耗时 内存占用
#1 Accepted 1ms 448.0 KiB
#2 Accepted 1ms 448.0 KiB
#3 Accepted 1ms 448.0 KiB
#4 Accepted 1ms 448.0 KiB
#5 Accepted 1ms 448.0 KiB
#6 Accepted 1ms 448.0 KiB
#7 Accepted 3ms 448.0 KiB
#8 Accepted 4ms 448.0 KiB
#9 Accepted 7ms 448.0 KiB
#10 Accepted 4ms 448.0 KiB -
17 年前@
-
02 年前@
-
02 年前@
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,x,y;
int a[10001],b[10001],g[10001],k[10001];
int i;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
cin>>g[i]>>k[i];
}
cin>>x>>y;
for(i=n;i>=1;i--)
{
if((x>=a[i]&&x<=a[i]+g[i]) && (y>=b[i]&&y<=b[i]+k[i]))
{
cout<<i<<endl;
return 0;
}
}
cout<<-1<<endl;
return 0;
} -
05 年前@
-
06 年前@
因为这里的n有点小(貌似正常是100000?)所以开个二维应该(?)可以……
代码是空间多时间短,如果要空间少的话可以拿一个地毯判一个
#include<iostream>
#include<cstdio>using namespace std;
#define l long
const l N=100010;
l n;
l a[N],b[N],g[N],k[N];
l x,y;l read()
{
l d=0,f=1;
char c=getchar();
while(c<'0' || c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0' && c<='9'){d=d*10+c-'0';c=getchar();}
return d*f;
}int main()
{
//freopen("carpet.in","r",stdin);
//freopen("carpet.out","w",stdout);
n=read();
for(l i=1;i<=n;i++){a[i]=read();b[i]=read();g[i]=read();k[i]=read();}
x=read();y=read();for(l i=n;i>=1;i--)
if(x>=a[i] && x<=a[i]+g[i] && y>=b[i] && y<=b[i]+k[i])
{printf("%ld\n",i);return 0;}printf("-1\n");return 0;
} -
06 年前@
-
07 年前@
......
-
07 年前@
开二维爆炸orz...
-
07 年前@
#include<iostream>
using namespace std ;
struct ha{
int a,b,g,k,a1,b1;
}d[10000];
int main()
{
int i,n,mm,nn;
freopen("carpet.in","r",stdin);
freopen("carpet.out","w",stdout);
cin>>n;
for(i=1;i<=n;i++)
{
cin>>d[i].a>>d[i].b>>d[i].g>>d[i].k;
d[i].a1=d[i].a+d[i].g;
d[i].b1=d[i].b+d[i].k;
}
cin>>mm>>nn;
for(i=n;i>=1;i++)
{
if(mm>=d[i].a&&mm<=d[i].a1&&nn>=d[i].b&&nn<=d[i].b1)
{
cout<<i<<endl;
return 0;
}
if(i=1)
{
cout<<"-1"<<endl;
return 0;
}
}
} -
07 年前@
#include <cstdio>
#include <iostream>
#include <cstdlib>
#define N 10000
using namespace std;
int main()
{
int n,a[N],b[N],x[N],y[N],h,l,t=-1;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i]>>b[i]>>x[i]>>y[i];
}
cin>>h>>l;
for(int i=0;i<n;i++)
{
if(h>=a[i]&&h<=(a[i]+x[i])&&l>=b[i]&&l<=(b[i]+y[i]))
t=i;
}
if(t==-1)
cout<<-1;
else
cout<<t+1;return 0;
} -
07 年前@
50 AC 纪念
-
07 年前@
-
07 年前@
var
x,y,t,i,n:longint;
a,b,c,d:array[1..10000]of longint;
begin
readln(n);
for i:=1 to n do readln(a[i],b[i],c[i],d[i]);
readln(x,y);
for i:=n downto 1 do
if (x>=a[i])and(x<=a[i]+c[i])and(y>=b[i])and(y<=b[i]+d[i]) then begin
t:=i;
break;end;
if t=0 then write(-1) else write(t);
end. -
07 年前@
var
x,y,t,i,n:longint;
a,b,c,d:array[1..10000]of longint;
begin
readln(n);
for i:=1 to n do readln(a[i],b[i],c[i],d[i]);
readln(x,y);
for i:=n downto 1 do
if (x>=a[i])and(x<=a[i]+c[i])and(y>=b[i])and(y<=b[i]+d[i]) then begin
t:=i;
break;end;
if t=0 then write(-1) else write(t);
end. -
07 年前@
唉,学了这么长时间也就只能AC点简单的模拟题了,55555
-
08 年前@
#include<cstdio>
#include<iostream>
#define MAX 100000using namespace std;
int main(){
int n,a[MAX],b[MAX],g[MAX],k[MAX],x,y,i;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);
}
scanf("%d%d",&x,&y);
for(i=n-1;i>=-1;i--){
if(i==-1){
printf("-1");
break;
}
if((x>=a[i])&&(x<=a[i]+g[i])&&(y>=b[i])&&(y<=b[i]+k[i])){
printf("%d\n",i+1);
break;
}
}
return 0;
}