Cod sursa(job #3250014)

Utilizator Alex_BerbescuBerbescu Alexandru Alex_Berbescu Data 19 octombrie 2024 08:23:50
Problema 12-Perm Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#pragma GCC optimize("O3")
#pragma GCC optimize("fast-math")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define ll long long
#define mod 1048576
using namespace std;
ll n, fact[15000005], sol;
ifstream fin("12perm.in");
ofstream fout("12perm.out");
int main()
{

   fin >> n;
   fact[0] = 1;
   for(int i = 1; i <= n; ++i)
   {
       fact[i] = ((fact[i - 1] * 1ll * i) % mod);
       if(i >= 3)
       {
           sol = (sol + 1ll * (i - 3));
       }
       if(n - i - 2 >= 0)
       {
           sol = sol + 1ll * (n - i - 2);
       }
   }
   fout << (fact[n] - (1ll *  (n * (n - 1) % mod) * ((sol / 2) % mod)) + mod) % mod;
    return 0;
}