結果
問題 | No.1434 Make Maze |
ユーザー | 沙耶花 |
提出日時 | 2021-03-19 22:59:48 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 6 ms / 2,000 ms |
コード長 | 1,798 bytes |
コンパイル時間 | 3,862 ms |
コンパイル使用メモリ | 255,040 KB |
最終ジャッジ日時 | 2025-01-19 19:17:24 |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 30 |
ソースコード
#include <stdio.h>#include <bits/stdc++.h>#include <atcoder/all>using namespace atcoder;using mint = modint998244353;using namespace std;#define rep(i,n) for (int i = 0; i < (n); ++i)#define Inf 1000000001vector<string> get(int H,int W,int X,vector<string> S){if(H<=3){return {};}int XX = X;auto T = S;rep(i,H){if(i&1){rep(j,W){T[i][j] = '#';}}}for(int i=1;i<H;){if(i+4>=H||i+6<H){T[i].back() = '.';i += 2;int cur = W-1;while(cur!=0&&X>0){X -= 4;cur -= 2;}T[i][cur] = '.';i+=2;}else{T[i].back() = '.';i += 2;int cur = W-1;while(cur!=0&&X>0){X -= 4;cur -= 2;}T[i][cur] = '.';i += 2;T[i][cur] = '.';if(cur==0&&X>0){// T[i-1][1] = '#';int x = 2;while(x+2<W && X>0){X -= 4;T[i-1][x-1] = '#';T[i][x] = '.';T.back()[x+1] = '#';T[i][x+2] = '.';x += 4;}}i += 2;}}if(X==0){return T;}return {};}int main(){int H,W,X;cin>>H>>W>>X;vector<string> S(H,string(W,'.'));rep(i,H){rep(j,W){if(i&1){if(j&1){S[i][j] = '#';}}}}X -= (H-1) + (W-1);if(X<0){cout<<-1<<endl;return 0;}if(X%4!=0){cout<<-1<<endl;return 0;}if(X==0){rep(i,H){if(i&1){rep(j,W-1)S[i][j] = '#';}}rep(i,H){cout<<S[i]<<endl;}return 0;}auto ret = get(H,W,X,S);if(ret.size()!=0){rep(i,H)cout<<ret[i]<<endl;return 0;}vector<string> SS(W,string(H,'.'));rep(i,H){rep(j,W){SS[j][i] = S[i][j];}}ret = get(W,H,X,SS);if(ret.size()==0)cout<<-1<<endl;else{rep(i,H){rep(j,W){S[i][j] = ret[j][i];}}rep(i,H)cout<<S[i]<<endl;}return 0;}