結果
問題 | No.883 ぬりえ |
ユーザー | @abcde |
提出日時 | 2019-09-13 22:24:45 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 24 ms / 2,000 ms |
コード長 | 853 bytes |
コンパイル時間 | 1,654 ms |
コンパイル使用メモリ | 165,968 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-04 10:34:33 |
合計ジャッジ時間 | 2,505 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 19 |
ソースコード
#include <bits/stdc++.h> using namespace std; char A[1000][1000]; int main(){ // 1. 入力情報取得. int N, K; scanf("%d %d", &N, &K); // 2. 塗り絵する. // .## // ##. // #.# int M = (N % K == 0) ? N / K : N / K + 1; // TODO: ロジック検討中. // N = 16, K = 8 対応. if(M * M < N){ M = sqrt(N); if(M * M < N) M++; } if(K > M) K = M; int ans = N; for(int i = 0; i < M; i++) for(int j = 0; j < M; j++) A[i][j] = '.'; for(int i = 0; i < M; i++){ for(int j = 0; j < K; j++){ if(ans > 0) A[i][(j + i) % M] = '#', ans--; } } // 3. 出力. printf("%d\n", M); for(int i = 0; i < M; i++){ for(int j = 0; j < M; j++){ printf("%c", A[i][j]); } printf("\n"); } return 0; }