Pagini recente » Cod sursa (job #341606) | Cod sursa (job #1360703) | Cod sursa (job #2430358) | Cod sursa (job #1223790) | Cod sursa (job #51774)
Cod sursa(job #51774)
#include <stdio.h>
int C;
#define dim 2000000
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);
}