[解题报告]11498 - Division of Nlogonia

题目大意

题目原文:http://uva.onlinejudge.org/external/114/11498.pdf

背景

在xy平面上选择一点当作分割点,以此点为中心画出一条水平线与一条垂直线,可分割成四个域区,如下图所示:
 

 
 
 
给定任意点,请你判断该点在哪个区域内,或是在区域的交界上.

 

输入

输入有多组测试数据,每组数据的第一列为整数 K ( 0 < K <= 1000)表示欲查询位置的点数,第二列有两个整数 N, M ( -10000 < N, M < 10000)表示分割点的坐标,接下来的K列每列有两个整数X, Y表示欲查询位置的点坐标。当K=0表示测试数据结束

 

输出

请分别就坐标的位置输出该点在哪个区域,或是在边上。
若在边上,请输出 divisa。
若在左上方的区域,请输出 NO。
若在右上方的区域,请输出 NE。
若在右下方的区域,请输出 SE。
若在左下方的区域,请输出 SO

 

 

Sample Input

 

3
2 1
10 10
-10 1
0 33
4
-1000 -1000
-1000 -1000
0 0
-2000 -10000
-999 -1001
0

 

Sample Output

 

NE
divisa
NO
divisa
NE
SO
SE

 


算法:

很简单的一个算法,很容易理解,见代码吧。

 

 

代码:

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

#include<stdio.h>
int main(void)
{
    int k,n,m,x,y;
    while(scanf("%d",&k)!=EOF)
    {
        if(k==0)break;
        scanf("%d %d",&n,&m);
        while(k--)
        {
            scanf("%d %d",&x,&y);
            if(x==n||y==m)
            printf("divisa\n");
            else if(x > n&&y > m)
            printf("NE\n");
            else if(x > n&&y < m)
            printf("SE\n");
            else if(x < n&&y > m)
            printf("NO\n");
            else if(x < n&&y < m)
            printf("SO\n");
        }

    }
    return 0;
}

 

posted @ 2013-02-21 20:23  乱七八糟 。  阅读(372)  评论(0编辑  收藏  举报