Cod sursa(job #543802)

Utilizator SpiderManSimoiu Robert SpiderMan Data 28 februarie 2011 16:55:33
Problema Sortari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
# include <cstdio>

const char *FIN = "sortari2.in", *FOU = "sortari2.out" ;
const int MOD = 999017 ;

int N ;

inline int ch ( int N ) {
    return ( N < 0 ? N + MOD : N ) ;
}

inline int fib ( int N ) {
    if ( N <= 2 ) return 1 ;

    int f1 = 1, f2 = 1, f3 ;
    for ( int i = 3; i <= N; ++i ) {
        f3 = f1 + f2, f3 %= MOD ;
        f1 = f2, f2 = f3 ;
    }
    return f2 ;
}

int main ( void ) {
    fscanf ( fopen ( FIN, "r" ) , "%d", &N ) ;

    int sol = 1 ;
    for ( int i = 2; i <= N; ++i ) {
        sol *= i, sol %= MOD ;
    }
    fprintf ( fopen ( FOU, "w" ) , "%d", ch ( sol - fib ( ( N << 1 ) - 1 ) ) ) ;
}