Skip to content

Commit 615d10a

Browse files
committed
DIEHARD - DIE HARD
1 parent 1a85678 commit 615d10a

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

SPOJ/DIEHARD.cpp

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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

Comments
 (0)