标签:scanf eof eps const oid typedef 每日 nod include
#include<iostream> #include<string> #include<cstring> #include<cmath> #include<cstdio> #include<cstdlib> #include<stdio.h> #include<algorithm> #include<set> #include<bitset> #include<queue> using namespace std; #define rep(i,j,k) for(int i = (int)j;i <= (int)k;i ++) #define per(i,j,k) for(int i = (int)j;i >= (int)k;i --) #define debug(x) cerr<<#x<<" = "<<(x)<<endl #define mmm(a,b) memset(a,b,sizeof(a)) #define pb push_back #define eps 1e-7 typedef long long ll; const int maxn = 1e6 + 4; //const ll mod = 1e9 + 7; int mmp[11][11]; int n = 0; int dir[4][2] = { 0,1 ,1,0, 0,-1, -1,0 }; struct node { int x, y, t; node(int x = 0, int y = 0, int t = 0) :x(x), y(y), t(t) {} void sc() { scanf("%d%d", &x, &y); } }; int vis[11][11]; string op[8]; int r[8], c[8]; int main() { int sr, sc; begin: while (cin >> n>>sr>>sc&&(n||sr||sc)) { mmm(mmp, 0); mmm(vis, 0); rep(i, 1, n) { //string op; int r, c; cin >> op[i] >> r[i] >> c[i]; vis[r[i]][c[i]] = 1; } rep(k, 1, n) { if (op[k] == "R") { int i = r[k]; int ok = 1; while (i--) { if (vis[i][c[k]] )ok = 0; if (ok)mmp[i][c[k]] = 1; } i = r[k]; ok = 1; while (i++&i<=10) { if (vis[i][c[k]] )ok = 0; if (ok)mmp[i][c[k]] = 1; } int j = c[k]; ok = 1; while (j--) { if (vis[r[k]][j] && ok == 1)ok = 0; if (ok)mmp[r[k]][j] = 1; } j = c[k]; ok = 1; while (j++&&j<=10) { if (vis[r[k]][j] && ok == 1)ok = 0; if (ok)mmp[r[k]][j] = 1; } //rep(i, 1, 10)mmp[i][c[k]] = 1; //rep(j, 1, 9)mmp[r[k]][j] = 1; } if (op[k] == "G") { per(i, 9, 1) { if (vis[i][c[k]])break; if (i == sr && sc == c[k]) { puts("NO"); goto begin; } mmp[i][c[k]] = 1; } } if (op[k] == "C") { int i = r[k]; int ok = 0; while (i--) { if (vis[i][c[k]]) if( ok == 1)ok = 0; else ok = 1; if (ok)mmp[i][c[k]] = 1; } i = r[k]; ok = 0; while (i++&&i<=10) { if (vis[i][c[k]]) if (ok == 1)ok = 0; else ok = 1; if (ok)mmp[i][c[k]] = 1; } int j = c[k]; ok = 0; while (j--) { if (vis[r[k]][j])if(ok == 1)ok = 0; else ok = 1; if (ok)mmp[r[k]][j] = 1; } while (j++) { if (vis[r[k]][j]) if( ok == 1)ok = 0; else ok = 1; if (ok)mmp[r[k]][j] = 1; } } if (op[k] == "H") { if (c[k] + 2 <= 10)if (!vis[r[k]][c[k] + 1])mmp[r[k] + 1][c[k] + 2] = mmp[r[k] - 1][c[k] + 2] = 1; if (c[k] - 2 <= 10)if (!vis[r[k]][c[k] - 1])mmp[r[k] + 1][c[k] - 2] = mmp[r[k] - 1][c[k] - 2] = 1; if (r[k] - 2 <= 9)if (!vis[r[k]-1][c[k]])mmp[r[k] - 2][c[k] - 1] = mmp[r[k] - 2][c[k] +1] = 1; if (r[k] + 2 <= 9)if (!vis[r[k] + 1][c[k]])mmp[r[k] + 2][c[k] - 1] = mmp[r[k] + 2][c[k] + 1] = 1; } } int ok=0; rep(i, 0, 3) { int dr = sr + dir[i][0]; int dc = sc + dir[i][1]; if (dr > 3 || dr < 1 || dc>6 || dc < 4)continue; if (mmp[dr][dc] == 0)ok = 1; } rep(i, 1, 10) {rep(j, 1, 9)cout << mmp[i][j] << ‘ ‘;cout << endl;} if (ok)puts("NO"); else puts("YES"); } } /* 2 2 5 H 2 3 R 2 4 */
标签:scanf eof eps const oid typedef 每日 nod include
原文地址:https://www.cnblogs.com/SuuT/p/9461060.html