Cod sursa(job #2544142)

Utilizator cyg_vladioanBirsan Vlad cyg_vladioan Data 11 februarie 2020 20:05:14
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#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;
}