Skip to content

Commit cc1838f

Browse files
committed
add solution of Eldorado
1 parent 616d697 commit cc1838f

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

20. Dynamic Programming/Eldorado.cpp

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Link problem : https://www.spoj.com/problems/ELDORADO/
2+
3+
#include <stdio.h>
4+
#include <algorithm>
5+
6+
int main()
7+
{
8+
int numbers, chainlen;
9+
int number[128];
10+
long long ways[2][128];
11+
int i, j, k;
12+
long long totways;
13+
14+
while ((scanf("%d%d", &numbers, &chainlen) == 2) && numbers)
15+
{
16+
for (i = 0; i < numbers; i++)
17+
scanf("%d", &number[i]);
18+
for (i = 0; i < numbers; i++)
19+
ways[1][i] = 1;
20+
21+
for (j = 2; j <= chainlen; j++)
22+
{
23+
for (i = 0; i < numbers; i++)
24+
{
25+
ways[j % 2][i] = 0;
26+
27+
for (k = 0; k < i; k++)
28+
{
29+
if (number[k] < number[i])
30+
{
31+
ways[j % 2][i] += ways[((j % 2) + 1) % 2][k];
32+
}
33+
}
34+
}
35+
}
36+
totways = 0;
37+
38+
for (i = 0; i < numbers; i++)
39+
totways += ways[chainlen % 2][i];
40+
41+
printf("%lld\n", totways);
42+
}
43+
return 0;
44+
}

0 commit comments

Comments
 (0)