首页 > 阿里310的笔试QAQ
头像
晞月
编辑于 2021-03-10 10:51
+ 关注

阿里310的笔试QAQ

第一题就是不到头不碰比一起走~
#include<iostream>
#include<cstring>
#include<string.h>
#include<iomanip>
using namespace std;
int main()
{
	int n,m,k;//行,列,几次 
	int hang = 0; 
	int lie = 0;
	cin>>n>>m>>k;
	char map[1020][1020]={'0'};
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= m; j++)
		{
			cin>>map[i][j];
			if(map[i][j] == '@') 
			{
				hang = i;
				lie = j;
			}
		}
	}
	int d[1020] = {0};
	int temp = 1;
	int k1 = k;
	while(k1--)
	{
		char c[7];//方位暂存
		cin>>c[0];
		if(c[0]=='E') 
		{
			d[temp++] = 1;//判东 
			cin>>c[1]>>c[2]>>c[3];
		}
		else if(c[0]=='S')
		{
			d[temp++] = 2;//判南 
			cin>>c[1]>>c[2]>>c[3]>>c[4];
		}
		else if(c[0]=='W')
		{
			d[temp++] = 3;//判西 
			cin>>c[1]>>c[2]>>c[3];
		}
		else if(c[0]=='N')
		{
			d[temp++] = 4;//判北 
			cin>>c[1]>>c[2]>>c[3]>>c[4];
		}
	}
	for(int i = 1; i <= k; i++)
	{
		if(d[i] == 1)
		{
			while(map[hang][lie+1] != '#'&&lie<m)
			{
				lie++;
			}
		}
		if(d[i] == 2)
		{
			while(map[hang+1][lie] != '#'&&hang<n)
			{
				hang++;
			}
		}
		if(d[i] == 3)
		{
			while(map[hang][lie-1] != '#'&&lie>1)
			{
				lie--;
			}
		}
		if(d[i] == 4)
		{
			while(map[hang-1][lie] != '#'&&hang>1)
			{
				hang--;
			}
		}
	}
	cout<<hang<<" "<<lie<<endl;
	return 0;
} 
第二题就没有然后了QAQ,果然签到完了就走

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐