[解题报告]10963 - The Swallowing Ground

题目大意

题目原文:http://uva.onlinejudge.org/external/109/10963.pdf

背景:

 
现在缺德的人已经被惩罚了,但是仍然还有一些事情要做。举例来说,地面需要自行接合才行。(要不然的话,好人可是会不小心掉入地狱的,这不太好。
地面藉由崩塌的方式来将 Don Giovanni 吞进去:有一部分的地面崩塌──落入了地狱,而且崩塌造成的裂口将 Don Giovanni 吞了进去。现在唯一能修复地面的方法,就是滑动地面来接合裂口。这里有个范例,左边的图(从空中鸟瞰图)是一个有着深谷的地面。假设地面向南北无限延伸,而东西两端都紧邻着另外的地面,但是之间有可滑动的接缝。如此一来,北边的陆块可以向南滑动,南边的陆块也可以向北滑动。右边的图是滑动的结果,而裂口接合了。

tex2html_wrap220

 
 
这里有另外一个范例。以左边的图来说,图中的裂口不能藉由滑动来接合。右边的图是尽力滑动之后的结果,但是仍然有个洞。
 
 

tex2html_wrap222

请写一只程序来判断裂口能不能接合。地面由方格图组成,其中有好几个方格是崩塌造成的洞,而裂口便是由这些洞组成的.
 

输入:

 
输入的第一列有一个正整数,代表接下来有多少组测试数据。
每笔测试数据的第一行都包含一个整数 W,代表直行的数目。接下来的 W 行都会有两个整数 y1、y2(-100 <= y1, y2 <= 100),分别代表着每个直行当中,裂口最北端和最南端的Y坐标位置。输入格式请参考 Sample Input。
测试数据一定会是个有效的裂口:所有的洞刚好将地面分成南北两块,陆块中不会有洞,也不会有孤立的陆块在裂口之中。

输出:

对于每组测试数据,如果裂口接合就输出一行 "Yes",否则就输出一行 "No"。每笔输出之间请空一行,请参考Sample Output。

 

算法:

 水题,直接上代码。

 

代码:

这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。

View Code
 1 #include<stdio.h>
 2 int main(void)
 3 {
 4     int t,i,flag,m,n,p;
 5     int y1[100],y2[100];
 6     scanf("%d",&p);
 7     while(p--)
 8     {
 9         flag=1;
10         scanf("%d",&t);
11         scanf("%d%d",&y1[0],&y2[0]);
12         m=y1[0]-y2[0];
13         for(i=1;i<t;i++)
14         {
15             scanf("%d%d",&y1[i],&y2[i]);
16             n=y1[i]-y2[i];
17             if(n!=m)
18             flag=0;
19         }  
20         if(flag==1)
21         puts("yes");
22         else
23         puts("no");
24         if(p)
25         puts("");
26         }
27     return 0;
28 }

 

posted @ 2013-02-25 18:10  乱七八糟 。  阅读(207)  评论(0编辑  收藏  举报