# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
754812 | Stickfish | Costinland (info1cup19_costinland) | C++17 | 1 ms | 256 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <vector>
#include <bitset>
using ll = long long;
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) {
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |