제출 #754770

#제출 시각아이디문제언어결과실행 시간메모리
754770StickfishCostinland (info1cup19_costinland)C++17
0 / 100
1 ms212 KiB
#include <iostream> #include <vector> #include <bitset> using namespace std; void solve_smallk(int k) { for (int m = 1; m < (1 << 16); m += 2) { vector<bitset<4>> v(4); for (int i = 0; i < 4; ++i) for (int j = 0; j < 4; ++j) { v[i][j] = m & (1 << (i * 4 + j)); } vector<vector<pair<int, int>>> dp(5, vector<pair<int, int>>(5, {0, 0})); dp[0][0] = {1, 0}; for (int i = 0; i < 4; ++i) for (int j = 0; j < 4; ++j) { if (v[i][j]) { dp[i + 1][j].first += dp[i][j].first + dp[i][j].second; dp[i][j + 1].second += dp[i][j].first + dp[i][j].second; } else { dp[i + 1][j].first += dp[i][j].first; dp[i][j + 1].second += dp[i][j].second; } } int ans = 0; for (int i = 0; i < 5; ++i) { ans += dp[4][i].first + dp[i][4].second; } if (ans == k) { cout << "5 5\n"; for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { cout << (v[i][j] ? '#' : '.'); } cout << "d\n"; } cout << "rrrr.\n"; return; } } cout << "-1\n"; } signed main() { int k; cin >> k; if (k <= 19) { solve_smallk(k); return 0; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...