#include<bits/stdc++.h>
using namespace std;
struct node{
long long a,b;
long long g,k;
}A[10005]; //a b表示地毯的左下角坐标,g k表示地毯x y方向的长度
main()
{
int n,flag;
long long x,y; //数据范围为1e18,用long long存储
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld %lld %lld %lld",&A[i].a,&A[i].b,&A[i].g,&A[i].k);
}
scanf("%lld %lld",&x,&y);
for(int i=n;i>0;i--)
{
flag=0;
if(x>=A[i].a&&x<=(A[i].a+A[i].g)&&y>=A[i].b&&y<=(A[i].b+A[i].k))
{//点的坐标在地毯覆盖的区域
printf("%d",i);
flag=1;
break;
}
}
if(flag==0)//点的坐标不在n块地毯覆盖的范围内
printf("-1");
}
#include<bits/stdc++.h>
using namespace std;
main()
{
int n,m;
char str[103];
int a[105];
scanf("%d",&n);
while(n--)
{
int ans=0; //记录最终的位置
scanf("%d",&m);
for(int i=0;i<m;i++)
{
scanf("%s",str);
if(str[0]=='L') //字符串的第一个字母为L
a[i]=-1;
else if(str[0]=='R')//字符串的第一个字母为R
a[i]=1;
else{
int t;
scanf("%s %d",str,&t); //%s吸收AS,%d接收i的值
a[i]=a[t-1];
}
ans+=a[i];
}
printf("%d\n",ans);
}
}
#include<bits/stdc++.h>
using namespace std;
int a[4][2]= {{0,1},{1,0},{0,-1},{-1,0}}; //二维数组切记都是花括号
int main()
{
int m;
while(scanf("%d",&m)!=EOF)
{
double x=0,y=0;
int dir=0;
while(m--)
{
char s[10];
scanf("%s",s);
if(s[0]=='T')
{
dir=(dir+1)%4; //当字符串的第一个字符为T时,dir向右转90度,对4取模
}
else
{
double num;
scanf("%lf",&num);
x=x+a[dir][0]*num; //求出向x方向或y方向的距离
y=y+a[dir][1]*num;
}
}
printf("%.3f %.3f\n",x,y);//输出保留3位小数
}