Language: C++

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#define re register
#define il inline
#define ll long long
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define fp(i,a,b) for(re int i=a;i<=b;i++)
#define fq(i,a,b) for(re int i=a;i>=b;i--)
using namespace std;
const int mod=1e9+7,N=1e6+100;
ll n,x,jc[N],p,ans,Need,f[N],inv[N];
il ll gi()
{
  re ll x=0,t=1;
  re char ch=getchar();
  while(ch!=‘-‘&&(ch<‘0‘||ch>‘9‘)) ch=getchar();
  if(ch==‘-‘) t=-1,ch=getchar();
  while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-48,ch=getchar();
  return x*t;
}
il ll C(re ll x,re ll y)
{
  return jc[y]*inv[y-x]%mod*inv[x]%mod;
}
int main()
{
  n=gi();Need=(n+1)/2;
  jc[0]=inv[0]=inv[1]=1;
  fp(i,2,n) inv[i]=(mod-mod/i*inv[mod%i]%mod)%mod;//printf("%lld ",inv[i]);
  fp(i,1,n) jc[i]=jc[i-1]*i%mod;
  fp(i,2,n) inv[i]=inv[i]*inv[i-1]%mod;
  fp(i,Need,n-1) f[i]=C(n-i-1,i-1)*jc[i]%mod*jc[n-i-1]%mod;
  fq(i,n-1,Need) f[i]=(f[i]-f[i-1]+mod)%mod;
  fp(i,Need,n-1) (ans+=(f[i]*i%mod))%=mod;
  printf("%lld\n",ans);
  return 0;
}

Compiler output:
a.cc:22:13: error: extended character ‘ is not valid in an identifier
   22 |   while(ch!=‘-‘&&(ch<‘0‘||ch>‘9‘)) ch=getchar();
      |             ^
a.cc:22:15: error: extended character ‘ is not valid in an identifier
   22 |   while(ch!=‘-‘&&(ch<‘0‘||ch>‘9‘)) ch=getchar();
      |               ^
a.cc:22:22: error: extended character ‘ is not valid in an identifier
   22 |   while(ch!=‘-‘&&(ch<‘0‘||ch>‘9‘)) ch=getchar();
      |                      ^
a.cc:22:22: error: extended character ‘ is not valid in an identifier
a.cc:22:30: error: extended character ‘ is not valid in an identifier
   22 |   while(ch!=‘-‘&&(ch<‘0‘||ch>‘9‘)) ch=getchar();
      |                              ^
a.cc:22:30: error: extended character ‘ is not valid in an identifier
a.cc:23:10: error: extended character ‘ is not valid in an identifier
   23 |   if(ch==‘-‘) t=-1,ch=getchar();
      |          ^
a.cc:23:12: error: extended character ‘ is not valid in an identifier
   23 |   if(ch==‘-‘) t=-1,ch=getchar();
      |            ^
a.cc:24:13: error: extended character ‘ is not valid in an identifier
   24 |   while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-48,ch=getchar();
      |             ^
a.cc:24:13: error: extended character ‘ is not valid in an identifier
a.cc:24:22: error: extended character ‘ is not valid in an identifier
   24 |   while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-48,ch=getchar();
      |                      ^
a.cc:24:22: error: extended character ‘ is not valid in an identifier
a.cc: In function 'long long int gi()':
a.cc:20:9: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   20 |   re ll x=0,t=1;
      |         ^
a.cc:20:13: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   20 |   re ll x=0,t=1;
      |             ^
a.cc:21:11: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   21 |   re char ch=getchar();
      |           ^~
a.cc:22:13: error: '\U00002018' was not declared in this scope
   22 |   while(ch!=‘-‘&&(ch<‘0‘||ch>‘9‘)) ch=getchar();
      |             ^
a.cc:22:22: error: '\U000020180\U00002018' was not declared in this scope
   22 |   while(ch!=‘-‘&&(ch<‘0‘||ch>‘9‘)) ch=getchar();
      |                      ^~~
a.cc:22:30: error: '\U000020189\U00002018' was not declared in this scope
   22 |   while(ch!=‘-‘&&(ch<‘0‘||ch>‘9‘)) ch=getchar();
      |                              ^~~
a.cc:23:10: error: '\U00002018' was not declared in this scope
   23 |   if(ch==‘-‘) t=-1,ch=getchar();
      |          ^
a.cc:24:13: error: '\U000020180\U00002018' was not declared in this scope
   24 |   while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-48,ch=getchar();
      |             ^~~
a.cc:24:22: error: '\U000020189\U00002018' was not declared in this scope
   24 |   while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-48,ch=getchar();
      |                      ^~~
a.cc: At global scope:
a.cc:27:15: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   27 | il ll C(re ll x,re ll y)
      |               ^
a.cc:27:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   27 | il ll C(re ll x,re ll y)
      |                       ^
a.cc: In function 'int main()':
a.cc:35:6: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   35 |   fp(i,2,n) inv[i]=(mod-mod/i*inv[mod%i]%mod)%mod;//printf("%lld ",inv[i]);
      |      ^
a.cc:13:30: note: in definition of macro 'fp'
   13 | #define fp(i,a,b) for(re int i=a;i<=b;i++)
      |                              ^
a.cc:36:6: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   36 |   fp(i,1,n) jc[i]=jc[i-1]*i%mod;
      |      ^
a.cc:13:30: note: in definition of macro 'fp'
   13 | #define fp(i,a,b) for(re int i=a;i<=b;i++)
      |                              ^
a.cc:37:6: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   37 |   fp(i,2,n) inv[i]=inv[i]*inv[i-1]%mod;
      |      ^
a.cc:13:30: note: in definition of macro 'fp'
   13 | #define fp(i,a,b) for(re int i=a;i<=b;i++)
      |                              ^
a.cc:38:6: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   38 |   fp(i,Need,n-1) f[i]=C(n-i-1,i-1)*jc[i]%mod*jc[n-i-1]%mod;
      |      ^
a.cc:13:30: note: in definition of macro 'fp'
   13 | #define fp(i,a,b) for(re int i=a;i<=b;i++)
      |                              ^
a.cc:39:6: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   39 |   fq(i,n-1,Need) f[i]=(f[i]-f[i-1]+mod)%mod;
      |      ^
a.cc:14:30: note: in definition of macro 'fq'
   14 | #define fq(i,a,b) for(re int i=a;i>=b;i--)
      |                              ^
a.cc:40:6: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   40 |   fp(i,Need,n-1) (ans+=(f[i]*i%mod))%=mod;
      |      ^
a.cc:13:30: note: in definition of macro 'fp'
   13 | #define fp(i,a,b) for(re int i=a;i<=b;i++)
      |                              ^