Pagini recente » Sandbox (cutiuţa cu năsip) | Cod sursa (job #1332152) | Cod sursa (job #2544142)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 2000;
const int MOD = 100003;
int d[NMAX + 5][NMAX + 5] , sp[NMAX + 5][NMAX + 5];
int f(int x)
{
if(x < 0)
return MOD;
return 0;
}
int main()
{
freopen("fractii.in" , "r" , stdin);
freopen("fractii.out" , "w" , stdout);
int p , n , i , j , k , nr , aux;
scanf("%d%d" , &p , &n);
if(p == 1)
{
for(i = 1 ; i < n ; i ++)
printf("%d " , i);
printf("%d\n" , n - 1);
}
else
{
d[2][1] = 1;
for(i = 2 ; i <= n ; i ++)
{
for(k = 1 ; k <= n ; k ++)
sp[i][k] = (sp[i][k - 1] + d[i][k]) % MOD;
for(k = 1 ; k <= min(2 * i , n) ; k ++)
if(i + k <= n)
{
aux = d[i + k][k] + sp[i][min(2 * i , n)] - sp[i][(k - 1) / 2];
d[i + k][k] = (aux + f(aux)) % MOD;
}
}
nr = 0;
for(j = 1 ; j <= n ; j ++)
nr = (nr + d[n][j]) % MOD;
printf("%d\n" , nr);
}
return 0;
}