Cod sursa(job #2081384)

Utilizator andreicoman299Coman Andrei andreicoman299 Data 4 decembrie 2017 17:59:01
Problema Sortari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
#define MOD 999017

int main(){
    FILE*fi,*fo;
    fi = fopen("sortari2.in","r");
    fo = fopen("sortari2.out","w");

    int n;
    fscanf(fi,"%d", &n);
    long long f1, f2, f3;
    if(2 * n - 1 == 1 || 2 * n - 1 == 2)
        f3 = 1;
    else{
        f1 = 1;
        f2 = 1;
        for(int i = 3; i <= 2 * n - 1; i++){
            f3 = (f1 + f2) % MOD;
            f1 = f2;
            f2 = f3;
        }
    }
    long long fact = 1;
    while(n > 0){
        fact = (fact * n) % MOD;
        n--;
    }
    long long sol = (fact - f3) % MOD;
    if(sol < 0) sol += MOD;
    fprintf(fo,"%lld", sol);

    fclose(fi);
    fclose(fo);
    return 0;
}