[ACM ] 118
題目: http://luckycat.kshs.kh.edu.tw/homework/q118.htm
一直WA 囧囧囧
小弟我的想法是開一張地圖,如果有機器人掉下去就記下來。
以便之後做判斷,不過還是WA XDD
請各位大大幫忙看一下QQ
CODE:
#include <stdio.h>
#include <string.h>
/*
0
N
3 W + E 1
S
1
*/
int main()
{
int x=0,y=0,i,f=0,j=0;
int dir=0;
int xx=0,yy=0;
char d,order[101]={'\0'},e;
int xa[101]={-1},ya[101]={-1};
int ax[52][52]={0};
scanf("%d %d",&xx,&yy);
while(scanf("%d %d %c",&x,&y,&d)!=EOF){
scanf("%c",&e);
gets(order);
xa[j] = x; ya[j] = y; j++;
switch(d){
case 'N':
dir = 200;
break;
case 'E':
dir = 201;
break;
case 'S':
dir = 202;
break;
case 'W':
dir = 203;
break;
}
for(i=0;i<strlen(order);i++){
switch(order[i]){
case 'R':
dir++;
break;
case 'L':
dir--;
break;
case 'F':
if(1){
switch(dir%4){
case 0:
if(ax[x][y+1]==-1) break;
y++;
break;
case 1:
if(ax[x+1][y]==-1) break;
x++;
break;
case 2:
if(ax[x][y-1]==-1) break;
y--;
break;
case 3:
if(ax[x-1][y]==-1) break;
x--;
break;
}
}
break;
}
switch(dir%4){
case 0:
d = 'N';
break;
case 1:
d = 'E';
break;
case 2:
d = 'S';
break;
case 3:
d = 'W';
break;
}
xa[j] = x; ya[j] = y; j++;
if(x>xx||y>yy||x<0||y<0){
printf("%d %d %c LOST\n",xa[j-2],ya[j-2],d);
ax[x][y]=-1; f=1;
break;
}
}
if(f==0)
printf("%d %d %c \n",x,y,d);
char d,order[101]={'\0'},e; f=0; dir = 0,j=0;
int xa[100]={-1},ya[100]={-1};
}
return 0;
}
CODE2:
#include <stdio.h>
#include <string.h>
/*
0
N
3 W + E 1
S
1
*/
int main()
{
int x=0,y=0,i,f=0,j=0;
int dir=0;
int xx=0,yy=0;
char d,order[101]={'\0'},e;
int tx=0,ty=0;
char dd[]="NESW";
int ax[52][52]={0};
scanf("%d %d",&xx,&yy);
while(scanf("%d %d %c",&x,&y,&d)!=EOF){
scanf("%c",&e);
gets(order);
tx=x;ty=y;
switch(d){
case 'N':
dir = 200;
break;
case 'E':
dir = 201;
break;
case 'S':
dir = 202;
break;
case 'W':
dir = 203;
break;
}
for(i=0;i<strlen(order);i++){
if(order[i]=='R') dir++;
else if(order[i]=='L') dir--;
else if(order[i]=='F'){
switch(dir%4){
case 0:
y++;
break;
case 1:
x++;
break;
case 2:
y--;
break;
case 3:
x--;
break;
}
}
d = dd[dir%4];
if(x>xx||y>yy||x<0||y<0){
if(ax[tx][ty]!=-1){
printf("%d %d %c LOST\n",tx,ty,d); f=1;
}
x = tx; y=ty;
ax[tx][ty]=-1;
}
j++; tx =x; ty=y;
}
if(f==0)
printf("%d %d %c \n",x,y,d);
f=0;j=0;
}
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.71.91
推
07/17 17:10, , 1F
07/17 17:10, 1F
→
07/17 17:21, , 2F
07/17 17:21, 2F
※ 編輯: zodiace 來自: 220.139.71.91 (07/17 17:31)
推
07/17 23:14, , 3F
07/17 23:14, 3F
→
07/17 23:15, , 4F
07/17 23:15, 4F
→
07/18 03:17, , 5F
07/18 03:17, 5F
→
07/18 03:17, , 6F
07/18 03:17, 6F
推
07/18 12:51, , 7F
07/18 12:51, 7F
→
07/18 12:51, , 8F
07/18 12:51, 8F
※ 編輯: zodiace 來自: 61.228.128.85 (07/18 16:58)
→
07/18 16:58, , 9F
07/18 16:58, 9F
→
07/18 16:59, , 10F
07/18 16:59, 10F
→
07/18 17:01, , 11F
07/18 17:01, 11F
推
07/18 23:52, , 12F
07/18 23:52, 12F
→
07/19 00:25, , 13F
07/19 00:25, 13F
※ 編輯: zodiace 來自: 61.228.128.85 (07/19 04:35)
→
07/19 04:35, , 14F
07/19 04:35, 14F
→
07/19 04:54, , 15F
07/19 04:54, 15F
→
07/19 06:06, , 16F
07/19 06:06, 16F
→
07/19 06:06, , 17F
07/19 06:06, 17F
推
07/19 10:06, , 18F
07/19 10:06, 18F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章