結果
| 問題 |
No.351 市松スライドパズル
|
| コンテスト | |
| ユーザー |
kapo
|
| 提出日時 | 2016-05-16 01:52:59 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 729 ms / 2,000 ms |
| コード長 | 1,033 bytes |
| コンパイル時間 | 823 ms |
| コンパイル使用メモリ | 73,504 KB |
| 実行使用メモリ | 402,492 KB |
| 最終ジャッジ日時 | 2024-09-25 03:01:43 |
| 合計ジャッジ時間 | 8,166 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 17 |
ソースコード
#include <iostream>
#include <vector>
#include <stack>
#include <utility>
using namespace std;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define pb push_back
void row_r(vector<int> &v, int w)
{
rep(i, 0, w) v[i] ? v[i] = 0 : v[i] = 1;
}
int main(void)
{
int i, j, h, w, n, k;
char s;
cin >> h >> w >> n;
vector<vector<int> > vv;
vector<int> v = { 1 };
rep(i, 1, w) v[i - 1] ? v.pb(0) : v.pb(1);
vv.pb(v);
rep(i, 1, h) { row_r(v, w); vv.pb(v); }
stack<pair<char, int> > st;
pair<char, int> pa;
pair<int, int> pos;
pos.first = 0; pos.second = 0;
rep(i, 0, n) {
cin >> s >> k;
pa.first = s; // h
pa.second = k; // w
st.push(pa);
}
rep(i, 0, n) {
pa = st.top();
st.pop();
if (pa.first == 'C' && pa.second == pos.second) {
if (pos.first == 0) pos.first = h-1;
else pos.first--;
}
else if (pa.first == 'R' && pa.second == pos.first) {
if (pos.second == 0) pos.second = w-1;
else pos.second--;
}
}
(vv[ pos.first ][ pos.second ]) ? printf("white\n") : printf("black\n");
return 0;
}
kapo