题目链接:http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=1743

思路:建立a,b,x,y的数组,表示范围。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 12000;
int a[maxn],b[maxn],x[maxn],y[maxn];
int main(void)
{
	int n,c,d,i;
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(x,0,sizeof(x));
	memset(y,0,sizeof(y));
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d %d %d %d",&a[i],&b[i],&x[i],&y[i]);
	}
	scanf("%d %d",&c,&d);
	for(i=n;i>=1;i--)
	{
		if(c>=a[i]&&c<=a[i]+x[i]&&d>=b[i]&&d<=b[i]+y[i]) 
		{
			printf("%d\n",i);return 0;
		}
	}
	printf("-1\n");
	return 0;
}

 

题目链接:http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=4959

思路:就是在从11到12点的时候不能碰到,所以到11或23的时候跳过。(感谢苗苗的细心讲解)

#include<iostream>
#include<cstdio>
using namespace std;
int main(void)
{
    int x,y,t,i,cnt;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d",&x,&y);
        cnt=0;
        for(i=x;i<y;i++)
        if(i!=11&&i!=23) cnt++;
        printf("%d\n",cnt);
    }
    return 0;
}

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐