| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
大牛们帮忙看看为啥会一直RE#include <iostream>
#include <cstdlib>
#define SIZE 250005
using namespace std;
struct coordinate
{
int x, y;
} coord[SIZE];
struct queue
{
int d, b, e;
char direction;
} que[SIZE];
int Comp(const void *p1,const void *p2)
{
struct queue *x = (queue *)p1;
struct queue *y = (queue *)p2;
if (x->d != y->d)
{
return x->d - y->d;
}
else
{
if (x->b != y->b)
{
return x->b - y->b;
}
else
{
return y->e - x->e;
}
}
}
int main()
{
int n, i, j, k;
char c;
scanf("%d", &n);
getchar();
coord[0].x = 0;
coord[0].y = 0;
for (i = 1; i <= n; i++)
{
scanf("%c", &c);
switch (c)
{
case 'N':
coord[i].x = coord[i - 1].x;
coord[i].y = coord[i - 1].y + 1;
break;
case 'S':
coord[i].x = coord[i - 1].x;
coord[i].y = coord[i - 1].y - 1;
break;
case 'W':
coord[i].x = coord[i - 1].x - 1;
coord[i].y = coord[i - 1].y;
break;
case 'E':
coord[i].x = coord[i - 1].x + 1;
coord[i].y = coord[i - 1].y;
break;
}
}
//Computer the distance
k = 0;
for (i = 0; i <= n; i++)
{
for (j = i + 1; j <= n; j++)
{
//N and S
if (coord[j].x == coord[i].x)
{
//N
if ((coord[j].y > coord[i].y) && ((coord[j].y - coord[i].y) < (j - i)))
{
que[k].d = coord[j].y - coord[i].y;
que[k].b = i;
que[k].e = j;
que[k++].direction = 'N';
}
//S
if ((coord[j].y < coord[i].y) && ((coord[i].y - coord[j].y) < (j - i)))
{
que[k].d = coord[i].y - coord[j].y;
que[k].b = i;
que[k].e = j;
que[k++].direction = 'S';
}
}
//W and E
if (coord[j].y == coord[i].y)
{
//E
if ((coord[j].x > coord[i].x) && ((coord[j].x - coord[i].x) < (j - i)))
{
que[k].d = coord[j].x - coord[i].x;
que[k].b = i;
que[k].e = j;
que[k++].direction = 'E';
}
//W
if ((coord[j].x < coord[i].x) && ((coord[i].x - coord[j].x) < (j - i)))
{
que[k].d = coord[i].x - coord[j].x;
que[k].b = i;
que[k].e = j;
que[k++].direction = 'W';
}
}
}
}
//Sort
qsort(que, k, sizeof(que[0]), Comp);
//Output
printf("%d %d %d %c\n", que[0].d, que[0].b, que[0].e, que[0].direction);
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator