結果
| 問題 |
No.1398 調和の魔法陣 (構築)
|
| コンテスト | |
| ユーザー |
沙耶花
|
| 提出日時 | 2021-02-19 21:52:20 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 7 ms / 3,153 ms |
| コード長 | 874 bytes |
| コンパイル時間 | 3,072 ms |
| コンパイル使用メモリ | 200,476 KB |
| 最終ジャッジ日時 | 2025-01-18 23:49:09 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 28 |
ソースコード
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define Inf 1000000000
int main(){
int W,H,X;
cin>>W>>H>>X;
vector<string> ans(H,string(W,'0'));
vector<vector<int>> t = {
{1},{0},{0,1}
};
if(X!=0){
int w = t[W%3].size(),h = t[H%3].size();
vector<int> cnt(h*w,0);
rep(i,cnt.size()){
if(X<=9){
cnt[i] = X;
X = 0;
break;
}
else{
cnt[i] = 9;
X -= 9;
}
}
if(X!=0){
cout<<-1<<endl;
return 0;
}
rep(i,H){
rep(j,W){
int y = -1,x = -1;
rep(k,t[H%3].size()){
if(t[H%3][k]==i%3){
y = k;
}
}
rep(k,t[W%3].size()){
if(t[W%3][k]==j%3){
x = k;
}
}
if(y==-1||x==-1)continue;
ans[i][j] = '0' + cnt[y*w+x];
}
}
}
rep(i,H){
cout<<ans[i]<<endl;
}
return 0;
}
沙耶花