Thursday, January 1, 2009

UVa problem 10865: sample code


001 #include "stdio.h"
002
003 int main() {
004 char line[100]
005 ;
006 int i
007 , x
008 , y
009 , x0
010 , y0
011 , num_points
012 , grid[200000][2]
013 , middle
014 , pp
015 , pn
016 , np
017 , nn
018 , stan
019 , ollie
020 ;
021
022 while (fgets(line, 100, stdin)) {
023 sscanf(line, "%d", &num_points);
024
025 if (num_points == 0) {
026 break;
027 }
028
029 for (i = 0; i < num_points; i += 1) {
030 fgets(line, 100, stdin);
031 sscanf(line, "%d %d", &x, &y);
032
033 grid[i][0] = x;
034 grid[i][1] = y;
035 }
036
037 middle = num_points >> 1;
038 x0 = grid[middle][0];
039 y0 = grid[middle][1];
040
041 pp = 0;
042 pn = 0;
043 np = 0;
044 nn = 0;
045
046 for (i = 0; i < num_points; i += 1) {
047 x = grid[i][0];
048 y = grid[i][1];
049
050 if (x == x0 || y == y0) {
051 continue;
052 }
053 else if (x > x0 && y > y0) {
054 pp += 1;
055 }
056 else if (x > x0 && y < y0) {
057 pn += 1;
058 }
059 else if (x < x0 && y > y0) {
060 np += 1;
061 }
062 else {
063 nn += 1;
064 }
065 }
066
067 stan = pp + nn;
068 ollie = np + pn;
069
070 printf("%d %d\n", stan, ollie);
071 }
072
073 return 0;
074 }

No comments:

Post a Comment