Submission #2545733
Source Code Expand
#include <iostream> #include <vector> #include <map> #include <tuple> using namespace std; using point = pair<int, int>; using square = tuple<int, int, int, int>; int solve(int i, int j, int k, int l, vector<point> &M, map<square, int> &memo) { square key = {i, j, k, l}; if (memo[key] > 0) return memo[key]; int result = 0; for (auto m : M) { if (m.first < i || k < m.first) continue; if (m.second < j || l < m.second) continue; int r = k - i + l - j + 1; r += solve(i, j, m.first - 1, m.second - 1, M, memo); r += solve(i, m.second + 1, m.first - 1, l, M, memo); r += solve(m.first + 1, j, k, m.second - 1, M, memo); r += solve(m.first + 1, m.second + 1, k, l, M, memo); result = max(result, r); } return memo[key] = result; } int main(int argc, char *argv[]) { int W, H; cin >> W >> H; int N; cin >> N; vector<pair<int, int>> M(N); for (int i = 0; i < N; i++) cin >> M[i].first >> M[i].second; map<square, int> memo; cout << solve(1, 1, W, H, M, memo) << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 金塊ゲーム |
User | icecocoa6 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1057 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int solve(int, int, int, int, std::vector<std::pair<int, int> >&, std::map<std::tuple<int, int, int, int>, int>&)’: ./Main.cpp:12:26: error: converting to ‘square {aka std::tuple<int, int, int, int>}’ from initializer list would use explicit constructor ‘constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {int&, int&, int&, int&}; <template-parameter-2-2> = void; _Elements = {int, int, int, int}]’ square key = {i, j, k, l}; ^