Codeforces699B One Bomb 暴力
来源:互联网 发布:淘宝好评返现短信范文 编辑:程序博客网 时间:2024/06/07 07:05
You are given a description of a depot. It is a rectangular checkered field of n × m size. Each cell in a field can be empty (".") or it can be occupied by a wall ("*").
You have one bomb. If you lay the bomb at the cell (x, y), then after triggering it will wipe out all walls in the row x and all walls in the column y.
You are to determine if it is possible to wipe out all walls in the depot by placing and triggering exactly one bomb. The bomb can be laid both in an empty cell or in a cell occupied by a wall.
The first line contains two positive integers n and m (1 ≤ n, m ≤ 1000) — the number of rows and columns in the depot field.
The next n lines contain m symbols "." and "*" each — the description of the field. j-th symbol in i-th of them stands for cell (i, j). If the symbol is equal to ".", then the corresponding cell is empty, otherwise it equals "*" and the corresponding cell is occupied by a wall.
If it is impossible to wipe out all walls by placing and triggering exactly one bomb, then print "NO" in the first line (without quotes).
Otherwise print "YES" (without quotes) in the first line and two integers in the second line — the coordinates of the cell at which the bomb should be laid. If there are multiple answers, print any of them.
3 4.*.......*..
YES1 2
3 3..*.*.*..
NO
6 5..*....*..*****..*....*....*..
YES3 3
#include <iostream>#include <cstdio>#include <map>#include <queue>#include <stack>#include <cmath>#include <algorithm>#include <cstring>#include <string>using namespace std;#define INF 0x3f3f3f3ftypedef long long LL;char a;struct node{ int x; int y;}s[10000005];int main(){ int n,m; node t; while(~scanf("%d%d",&n,&m)){ int k=0; getchar(); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%c",&a); if(a=='*'){ s[k].x=i; s[k].y=j; k++; } } getchar(); } if(k>m+n-1){ printf("NO\n"); return 0; } int fl=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int flag=1; for(int t=0;t<k;t++){ if(s[t].x!=i&&s[t].y!=j){ flag=0; break; } } if(flag==1){ fl=1; t.x=i; t.y=j; break; } } if(fl==1) break; } if(fl==0) printf("NO\n"); else{ printf("YES\n%d %d\n",t.x,t.y); } } return 0;}
- Codeforces699B One Bomb 暴力
- CodeForces 699B One Bomb(暴力)
- CodeForces 699B - One Bomb 暴力
- One Bomb
- One Bomb
- One Bomb
- Codeforces Round #363(Div. 2) A. Launch of Collider【模拟】 && B. One Bomb【暴力】
- CodeForces 699B——One Bomb(预处理,暴力枚举)
- 699B - One Bomb
- Codeforces #363 One Bomb
- B - One Bomb
- B. One Bomb
- Codeforces 699A One Bomb
- Codeforces-Round-#363- One Bomb
- Codeforces 699B One Bomb
- codeforces 699B One Bomb
- codeforces 699B One Bomb
- Codeforces 699B - One Bomb
- 《Testing with Xcode》第二章——Testing Basics
- Android 面试题
- 翻转二叉树(leetcode-226)
- CF#321-B - Kefa and Company 二分+前缀和
- node.js升级
- Codeforces699B One Bomb 暴力
- 精通C#:Chapter2学习笔记
- FFMpeg Windows下屏幕录像
- windows7下java配置环境
- 设计模式之代理模式
- Unity和Android相互通信
- Zxing生成二维码经典解析
- 磁盘那点事+卸载ubuntu+安装ubuntu
- Android 使用Loader轻松实现仿微信图片加载