Language: C++

#define _'			'
A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}

Compiler output:
a.cc:1:9: warning: ISO C++11 requires whitespace after the macro name
    1 | #define _'                      '
      |         ^
a.cc:2:3: warning: multi-character character constant [-Wmultichar]
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |   ^
a.cc:2:13: warning: multi-character character constant [-Wmultichar]
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |             ^
a.cc:2:26: warning: multi-character character constant [-Wmultichar]
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                          ^
a.cc:2:31: warning: multi-character character constant [-Wmultichar]
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                               ^
a.cc:2:170: warning: multi-character character constant [-Wmultichar]
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                                                                                                                                                                          ^
a.cc:2:1: error: 'A' does not name a type
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      | ^
a.cc:2:36: error: 'i' does not name a type
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                                    ^
a.cc:2:45: error: expected constructor, destructor, or type conversion before '(' token
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                                             ^
a.cc:2:60: error: expected unqualified-id before '{' token
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                                                            ^
a.cc:2:71: error: expected constructor, destructor, or type conversion before '(' token
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                                                                       ^
a.cc:2:118: error: expected constructor, destructor, or type conversion before '(' token
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                                                                                                                      ^
a.cc:2:157: error: expected constructor, destructor, or type conversion before '(' token
    2 | A[_];long P[_],M=1e9+7,F[_],I[_],X;i,j,k,t;c(a,b)long*a,*b;{X=*a-*b;}p(a,b){return b?p(a%M*a%M,b/2)*(b%2?a:1L)%M:1;}f(a,b){return F[a+b]*I[a]%M*I[b]%M;}main(s){for(;++X<_;~scanf("%d",A+i)&&i++%2&&gets(P))I[X]=p(s=F[X]=X*s%M,M-2);for(qsort(A,i/2,8,c);j<i;P[j++-1]=X)for(X=f(t=A[++j]-=*I=1,s=A[k=j]-=1);k;X=s<A[k-=2]?X:(X-f(s-A[k],t-A[k+1])*P[k]%M+M)%M);printf("%d",X);}
      |                                                                                                                                                             ^