結果
問題 | No.307 最近色塗る問題多くない? |
ユーザー |
![]() |
提出日時 | 2015-11-28 01:03:09 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,628 bytes |
コンパイル時間 | 1,497 ms |
コンパイル使用メモリ | 166,016 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-11-21 21:57:55 |
合計ジャッジ時間 | 3,792 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 35 WA * 1 |
コンパイルメッセージ
main.cpp: In function ‘void solve()’: main.cpp:68:41: warning: ‘last’ may be used uninitialized in this function [-Wmaybe-uninitialized] 68 | cout << last; | ^~~~
ソースコード
#define _CRT_SECURE_NO_WARNINGS#include "bits/stdc++.h"#define rep(i,n) for(int i = 0;i < n;i++)#define P(p) cout<<(p)<<endl;using namespace std;typedef long long ll;int dx[] = { 0, 1, 0, -1 };int dy[] = { -1, 0, 1, 0 };int sttoi(std::string str) {int ret;std::stringstream ss; ss << str;ss >> ret;return ret;}ll gcd(ll a, ll b){if (b > a)swap(a, b); if (b == 0)return a; else{ return gcd(b, a%b); }}void solve() {int n, m;cin >> n >> m;int board[201][201];for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> board[i][j];}}int q;cin >> q;bool end = false;int last;rep(i, q){int x, y, c;cin >> y >> x >> c;queue<pair<int, int>> st;st.push(make_pair(x, y));int f = board[y][x];int cnt = 0;if (end){last = c;continue;}if (c != f){while (!st.empty()){pair<int, int> pos = st.front();st.pop();cnt++;board[pos.second][pos.first] = c;for (int j = 0; j < 4; j++){int newX = pos.first + dx[j];int newY = pos.second + dy[j];if (newX >= 1 && newX <= m && newY >= 1 && newY <= n){if (board[newY][newX] == f){st.push(make_pair(newX, newY));board[newY][newX] = c;}}}}}if (cnt == n*m)end = true;}if (end){for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cout << last;if (j != m)cout << " ";}cout << endl;}}else{for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cout << board[i][j];if (j != m)cout << " ";}cout << endl;}}}int main() {solve();return 0;}