Advertisement
rayated

Untitled

Jun 1st, 2021
754
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const long long int mod=1e9+7;
  4. long long int two[1000005],fact[1000005];
  5.  
  6. void kajkoro()
  7. {
  8.   long long int two0=1,fact0=1;
  9.   fact[0]=1;
  10.   for(int i=1;i<=1000000;i++)
  11.   {
  12.     two[i]=(two0=(two0*2)%mod);
  13.     fact[i]=(fact0=(fact0*i)%mod);
  14.   }
  15. }
  16.  
  17. long long int modivide(long long int x,long long int n,long long int M)
  18. {
  19.     long long int result=1;
  20.     while(n>0)
  21.     {
  22.         if(n % 2 ==1)
  23.             result=(result * x)%M;
  24.         x=(x*x)%M;
  25.         n=n/2;
  26.     }
  27.     return result;
  28. }
  29.  
  30. int main()
  31. {
  32.   kajkoro();
  33.   int tc;cin>>tc;
  34.   for(int t=1;t<=tc;t++)
  35.   {
  36.     long long int n;
  37.     cin>>n;
  38.     long long int sum=1,cas,up=fact[n],down;
  39.     for(long long int i=1;i<=(n/2);i++)
  40.     {
  41.       down=(((two[i]*fact[n-2*i])%mod)*fact[i])%mod;
  42.       cas=(up*(modivide(down,mod-2,mod)%mod))%mod;
  43.       sum=(sum+cas)%mod;
  44.     }
  45.     cout<<"Case "<<t<<": "<<sum<<endl;
  46.   }
  47.   return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement