Pagini recente » Cod sursa (job #2206347) | Cod sursa (job #2343893) | Cod sursa (job #1975830) | Cod sursa (job #62195) | Cod sursa (job #51767)
Cod sursa(job #51767)
#include <stdio.h>
int C;
#define dim 1000001
long L, T1[dim], T2[dim], T3[dim], T4[dim];
void get_data_solve();
void print();
int main()
{
get_data_solve();
print();
return 0;
}
#define greater(a, b) (a) > (b) ? (a) : (b)
void get_data_solve()
{
freopen("oite.in", "r", stdin);
scanf("%d %ld", &C, &L);
long i, j, value, max = 0, limit;
for(i=1; i<=C; ++i)
{
scanf("%ld", &value);
limit = max;
for(j=limit; j>=0; --j)
if(j+value <= L)
{
T4[j+value] += T3[j];
max = greater(max, j+value);
}
for(j=limit; j>=0; --j)
if(j+value <= L)
{
T3[j+value] += T2[j];
max = greater(max, j+value);
}
for(j=limit; j>=0; --j)
if(j+value <= L)
{
T2[j+value] += T1[j];
max = greater(max, j+value);
}
++ T1[value];
}
fclose(stdin);
}
void print()
{
freopen("oite.out", "w", stdout);
printf("%ld", T4[L]);
fclose(stdout);
}