赛艇

题目描述:

河神喜欢在自己的领地小汤河上开赛艇,于是他用一口锅改装成了一颗赛艇。我们假定小汤河只有一小段经过小汤河职业技术学院,这段河道宽为n长为m。
现在河神想要秀自己最高超的技术,所以他给自己的船设置了一个复杂的自动驾驶程序(事实上只是预先设置好p次操作后的行驶路线罢了)。但是河神并不知道,河中有t口废弃的锅。
碰到这些锅,或者冲上河岸,河神就会翻船。你的任务就是判断河神会不会翻船。

输入:

因为河神每天都要赛艇所以请多组输入。
第一行输入n,m(0<n,m<100)
第二行输入河神的坐标x,y(0=<x<n && 0=<y<m)(坐标系取第一象限,即(0,0)在左下角)
第三行输入锅的数量t(0=<t<n*m)
接下来t行输入锅的坐标xi,yi(0=<xi<n && 0=<yi<m)
第t+4行输入河神赛艇操作的数量p(0<p<100)
接下来p行输入行驶方向(N,E,W,S分别代表向北(上),向东(右),向西(左),向南(下),一次移动一个单位)

输出:

如果河神翻船了,输出"the boss of river is also desperated what can he do?"

河神没翻船则输出"the boss of river finished his show!!"

样例输入
5 5
1 1
2
2 2
3 3
5
N
W
N
E
E
样例输出
the boss of river finished his show!!
提示

(都过去一年多了,系统突然提示不通过?我一看原来是题目这里有敏感信息。。)

#include <iostream>
using namespace std;
int main()
{
	int n,m,x,y,a[102],b[102],t,p,to;
	char direction[100];
	while(cin>>n>>m>>x>>y)
	{b[102]={};
	a[102]={};
		to=0;
		cin>>t;
		for(int i=1;i<=t;i++)
		{
			cin>>a[i]>>b[i];
		}
		cin>>p;
		for(int i=1;i<=p;i++)
		{
			cin>>direction[i];
			if(direction[i]=='N') y++;
			if(direction[i]=='S') y--;
			if(direction[i]=='E') x++;
			if(direction[i]=='W') x--;
		}
		if(x<0||x>n||y<0||y>m) to=1;
		for(int i=1;i<=t;i++)
		{
			if(x==a[i]&&y==b[i]) {
			to=1;break;}
		}
		if(to==0) cout<<"the boss of river finished his show!!"<<endl;
		else cout<<"the boss of river is also desperated what can he do?"<<endl;
	}
	return 0;
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值