結果
問題 | No.883 ぬりえ |
ユーザー |
|
提出日時 | 2019-09-13 22:31:55 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 1,407 bytes |
コンパイル時間 | 755 ms |
コンパイル使用メモリ | 86,008 KB |
実行使用メモリ | 12,800 KB |
最終ジャッジ日時 | 2024-07-04 10:34:43 |
合計ジャッジ時間 | 1,828 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 19 |
ソースコード
#include<iostream> #include<string> #include<iomanip> #include<cmath> #include<vector> #include<algorithm> #include<cassert> using namespace std; #define int long long #define endl "\n" const long long INF = (long long)1e18; const long long MOD = 1'000'000'007; string yn(bool f){return f?"Yes":"No";} string YN(bool f){return f?"YES":"NO";} int N, K; bool check(int num){ // cout<<num <<" "<<min(K,num)*num <<endl; if(min(K,num)*num < N) return false; return true; } signed main(){ cin.tie(0); ios::sync_with_stdio(false); cout<<fixed<<setprecision(10); const int MAX = 1100; int con = 0, M = 0; vector<vector<int>> ans(MAX, vector<int>(MAX, false)); vector<int> conh(MAX), conw(MAX); cin>>N>>K; for(int i = 1; ; i++){ if(check(i)){ M = i; break; } } for(int i = 0; i < M; i++){ for(int j = 0; j < K && j < M; j++){ if(con++ < N){ ans[i][(i+j)%M] = true; } } } cout<<M<<endl; for(int i = 0; i < M; i++){ for(int j = 0; j < M; j++){ cout<<(ans[i][j]?"#":"."); } cout<<endl; } return 0; } /* ##... ##... ..##. ..##. ....# #..... .#.... ..#... ...#.. ....#. .....# ##.... .##... ..##.. ...##. ....## ##.... .##... ..##.. ...##. ....## #....# ###.... .###... ..###.. ...###. ....### #....## ##....# ######.. .######. ..###### ### ### ### ###.... ###.... ###.... ...###. ...###. ...###. ......# ###... ###... ###... */