P1256. 小可的手机

题目描述

集训的某天中午,小可趁着午休跑到大街上溜达,忽然乌云密布,预示着一场暴雨即将到来,吓得小可急忙跑回集训营,幸运的是,暴雨在小可飞奔到集训营楼下的下一秒才开始下。

“呼~”,就在小可庆幸没被突至的暴雨淋湿的时候,在二楼刚打扫完卫生的小达将一盆污水朝楼下泼了出去,真没素质,十分精准的命中了小可,还是没躲过被淋湿,衣服湿透的小可刚想上楼找小达算账,却想起衣服口袋里还有一个存储着重要资料的手机

“糟糕”,小可的手机进水了。

小可的手机内部的电路板可以被看做是一个�∗�n∗m的二维平面,我们用三种符号简单的表示小可手机的电路板构造

  • 0:表示该位置上没有电子元件
  • 1:表示该位置上有电子元件
  • *:表示水滴

正常情况下,水滴会沿着重力方向一直流动,直到流出边界,一旦水滴经过任意一个电子元件,小可的手机就会报废。

小可急忙把手机转了方向,想改变重力方向改变水滴的流向,我们用sxzy四个字符分别代表上下左右

小可想知道,在这种方向下,他的手机会不会报废

输入格式

第一行为两个正整数�,�n,m和一个字符�ℎch,代表着小可手机的简易电路板的大小,和小可手机的重力方向

接下来 �n 行每行 �m个字符,代表着电路板上的构造情况,不保证电路板上一定会有水滴。

输出格式

若小可的手机会报废则输出Over,不会则输出Fine

输入数据 1

3 3 x
0*0
000
111

Copy

输出数据 1

Over

Copy

第一行第二列的水滴向下流到了第三行第二列的电子原件上,报废

输入数据 2

3 3 y
000
*01
000

Copy

输出数据 2

Over

Copy

第二行第一列的水滴向右流到了第二行第三列的电子原件上,报废

输入数据 3

3 3 s
0*0
000
111

Copy

输出数据 3

Fine

Copy

第一行第二列的水滴向上流出边界,未经过电子元件,没报废

数据范围与约定

对于全部数据,1≤n,m≤1001≤n,m≤100 

#include<bits/stdc++.h>
using namespace std;
int main(){
	char a[1001][1001];
	int n,m;cin>>n>>m;
	char fx;cin>>fx;
	bool ans_1=true;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
			
	}
		
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i][j]=='*'){
				if(fx=='s'){
					int t=i;
					while(t--){
						if(a[t][j]=='1'){
							cout<<"Over";
							return 0;
						}
					}
				}else if(fx=='x'){
					for(int t=i;t<=n;t++){
						if(a[t][j]=='1'){
							cout<<"Over";
							return 0;
						}
					}
				}else if(fx=='z'){
					int t=j;
					while(t--){
						if(a[i][t]=='1'){
							cout<<"Over";
							return 0;
						}
					}
				}else{
					for(int t=j;t<=n;t++){
						if(a[i][t]=='1'){
							cout<<"Over";
							return 0;
						}
					}
				}
			}
		}
	}
	cout<<"Fine\n";
	return 0;
}                                                       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值