LittleChen


私信TA

用户名:LadChen

访问量:4082

签 名:

Move on the way!

等  级
排  名 7308
经  验 1326
参赛次数 0
文章发表 6
年  龄 0
在职情况 学生
学  校 中国石油大学(北京)
专  业

  自我简介:

Coding, Studying, Fighting

#include<stdio.h>
#define MAX 100

char dir[5] = {'U', 'R', 'D', 'L'};
int color[MAX][MAX];
int m, n;
int x, y, dir_tmp, step; 

int getNumOfDir(char d)
{              	
	if (d == 'U') return 0;
	if (d == 'R') return 1;
	if (d == 'D') return 2;
	if (d == 'L') return 3; 
 } 
 
 void Move()//前进 
 {
 	if(dir_tmp == 'U')
 	{	
 		if(x != 0)
 		{
 			x -= 1; 
// 			printf("%c x = %d, y = %d\n",dir_tmp, x, y);//debug
 			return;
		 }
	 }
	 
	 if(dir_tmp == 'R')
	 {
	 	if(y != n-1) 
	 	{
	 		y += 1;
//	 		printf("%c x = %d, y = %d\n",dir_tmp, x, y);//debug
	 		return;
		 }
	 }
	 
	 if(dir_tmp == 'D')
	 {
	 	if (x != m-1)
	 	{
	 		x += 1;
//	 		printf("%c x = %d, y = %d\n",dir_tmp, x, y);//debug
	 		return ;
		 }
	 }
	 
	 if(dir_tmp == 'L')
	 {
	 	if(y != 0)
	 	{
	 		y -= 1;
//	 		printf("%c x = %d, y = %d\n",dir_tmp, x, y);//debug
	 		return;
		 }
	 }
 }
 

int main()
{

	int i, j;
	int getN;
	
	scanf("%d%d", &m, &n);
	for (i = 0; i < m; ++i)
		for (j = 0; j < n; ++j)
		{
			scanf("%d", &color[i][j]);
		}
	scanf("%d %d %c %d", &x, &y, &dir_tmp, &step);
//	printf("%d %d %c %d\n", x, y, dir_tmp, step);//debug

	while(step--)
	{
		if(color[x][y] == 1)
		{
			color[x][y] = 0;
			getN = getNumOfDir(dir_tmp) + 5;
			dir_tmp = dir[getN%4];
//			printf("dir_tmp = %c\ngetN = %d\n", dir_tmp, getN%4);//debug
			Move();
		}
		else
		{
			color[x][y] = 1;
			getN = getNumOfDir(dir_tmp) + 3;
			dir_tmp = dir[getN%4]; 
//			printf("dir_tmp = %c\ngetN = %d\n", dir_tmp, getN%4);//debug
			Move();
		}
	}
	printf("%d %d\n", x, y);
	
	return 0;
 }
 

0.0分

0 人评分

  评论区

  • «
  • »