結果
| 問題 | No.883 ぬりえ |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-09-13 22:03:59 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,379 bytes |
| 記録 | |
| コンパイル時間 | 1,570 ms |
| コンパイル使用メモリ | 170,324 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-04 09:42:40 |
| 合計ジャッジ時間 | 2,886 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 16 WA * 3 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int calc(int n, int K) {
if (n == 0) return 0;
if (n >= K * K) return calc(n - K * K, K) + K;
int res = 0;
for (int i = 1; i <= K; i++) {
if (n <= i * i) {
res = i;
break;
}
}
return res;
}
bool judge(vector<string>& ans, int n, int K) {
int m = ans.size();
for (int i = 0; i < m; i++) {
int tmp = 0;
for (int j = 0; j < m; j++) {
tmp += (ans[i][j] == '#');
}
if (tmp > K) return false;
}
int cnt = 0;
for (int j = 0; j < m; j++) {
int tmp = 0;
for (int i = 0; i < m; i++) {
tmp += (ans[i][j] == '#');
cnt += (ans[i][j] == '#');
}
if (tmp > K) return false;
}
return (cnt == n);
}
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
int n, K;
cin >> n >> K;
int m = calc(n, K);
cout << m << "\n";
vector<string> ans(m, string(m, '.'));
int rest = n;
for (int i = 0; i < m; i++) {
int ii = i / K;
for (int j = 0; j < m; j++) {
int jj = j / K;
if (ii == jj && rest > 0) {
rest--;
ans[i][j] = '#';
}
}
cout << ans[i] << "\n";
}
assert(judge(ans, n, K));
return 0;
}