题目描述
集训的某天中午,小可趁着午休跑到大街上溜达,忽然乌云密布,预示着一场暴雨即将到来,吓得小可急忙跑回集训营,幸运的是,暴雨在小可飞奔到集训营楼下的下一秒才开始下。
“呼~”,就在小可庆幸没被突至的暴雨淋湿的时候,在二楼刚打扫完卫生的小达将一盆污水朝楼下泼了出去,真没素质,十分精准的命中了小可,还是没躲过被淋湿,衣服湿透的小可刚想上楼找小达算账,却想起衣服口袋里还有一个存储着重要资料的手机
“糟糕”,小可的手机进水了。
小可的手机内部的电路板可以被看做是一个�∗�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;
}