Cod sursa(job #1709609)

Utilizator CNFBTeamCNFB Udristoiu Linca Dicu CNFBTeam Data 28 mai 2016 13:03:29
Problema Padure2 Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 1.11 kb
#include <cstdio>
#include <algorithm>

const int SIZE = 1e3 + 5;
const int MOD  = 2e6 + 3;
const int INFI = 0x3f3f3f3f;

int dp[SIZE][SIZE], n, m, c; struct point{ int x, y; } p[SIZE];
int fact[SIZE * SIZE * 2], inv[SIZE * SIZE * 2];

inline int gcd( int a, int b, int &x, int &y ) {
    if( !b ) {
        x = 1;
        y = 0;
        
        return a;
    } else {
        int x1, y1, d;
        
        d = gcd( b, a % b, x1, y1 );
        
        x = y1;
        y = x1 - (a / b) * y1;
        
        return d;
    }
    
    return -1;
}

inline int inverse( int a, int b ) {
    int x, y, d;
    
    d = gcd( a, b, x, y );
    
    if( x < 0 )
        x = b + (x % b);
    
    return x;
}

int comb( int n, int k ) {
    return ( 1LL * fact[n] * inv[k] * inv[n - k] ) % MOD;
}

int main( int argc, const char *argv[] ) {
    
    freopen( "padure2.in" , "r", stdin  );
    freopen( "padure2.out", "w", stdout );
    
    fact[0] = 1;
    for( int i = 1; i < MOD; i ++ ) {
        fact[i] = (fact[i - 1] * 1LL * i) % MOD;
        inv[i] = inverse( fact[i], MOD );
    }
    
    printf( "0\n" );
    
    return 0;
}