#include #include #include #include #include #include #include #include #include using namespace std; //後ろからメモ化再帰 int dfs(vector &D, vector &dp, int &N, int state, int MAX_HP){ if(dp[state] >= 0) return dp[state]; //前の相手 for(int j=0; j> N; vector D(N); int max_HP=1; for(int i=0; i> D[i]; if(D[i] < 0) max_HP++; } vector dp(1<