|
| 1 | +/* Amit Bansal - @amitbansal7 */ |
| 2 | +#include <bits/stdc++.h> |
| 3 | +#include <string> |
| 4 | +#define lli long long int |
| 5 | +#define llu unsigned long long int |
| 6 | +#define S(x) scanf("%d",&x) |
| 7 | +#define Sl(x) scanf("%lld",&x) |
| 8 | +#define Mset(p,i) memset(p,i,sizeof(p)) |
| 9 | +#define mlc(t,n) (t *)malloc(sizeof(t)*n) |
| 10 | +#define NIL -1 |
| 11 | +#define INF 0x3f3f3f3f |
| 12 | +#define TC int testcase; S(testcase); while(testcase--) |
| 13 | +#define Pi 3.14159 |
| 14 | +using namespace std; |
| 15 | + |
| 16 | +int DP[1010][1010]; |
| 17 | + |
| 18 | +int solve(int pos,int h,int a,int t) |
| 19 | +{ |
| 20 | + if(a<=0 || h<=0) |
| 21 | + return t; |
| 22 | + |
| 23 | + if(DP[h][a] != -1) |
| 24 | + return DP[h][a]; |
| 25 | + |
| 26 | + if(pos == 1) |
| 27 | + t = max(solve(3,h-5,a-10,t),solve(2,h-20,a+5,t))+1; |
| 28 | + |
| 29 | + else if(pos == 2) |
| 30 | + t = max(solve(3,h-5,a-10,t),solve(1,h+3,a+2,t))+1; |
| 31 | + |
| 32 | + else if(pos == 3) |
| 33 | + t = max(solve(2,h-20,a+5,t),solve(1,h+3,a+2,t))+1; |
| 34 | + |
| 35 | + |
| 36 | + DP[h][a] = t; |
| 37 | + return t; |
| 38 | +} |
| 39 | + |
| 40 | +int main() |
| 41 | +{ |
| 42 | + TC |
| 43 | + { |
| 44 | + int h,a; |
| 45 | + S(h);S(a); |
| 46 | + memset(DP,-1,sizeof(DP)); |
| 47 | + printf("%d\n",solve(1,h+3,a+2,0)); |
| 48 | + } |
| 49 | + return 0; |
| 50 | +} |
0 commit comments