Submission #3230311


Source Code Expand

/*#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")*/
#include<bits/stdc++.h>
#define ll long long
#define inf 1000000005
#define put putchar('\n')
#define F(i,a,b) for (int i=(a);i<=(b);i++)
#define D(i,a,b) for (int i=(a);i>=(b);i--)
#define go(i,t) for (int i=head[t];i;i=Next[i])
#define sqr(x) ((x)*(x))
#define re register
#define mp make_pair
#define fi first
#define se second
#define pa pair<int,int>
#define pb push_back
#define be begin()
#define en end()
#define ret return puts("-1"),0;
#define mod 1000000007
//#define N 500055
//#define int ll
using namespace std;
inline char gc(){
    static char buf[100000],*p1=buf,*p2=buf;
    return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
#define gc getchar
inline int read(){char c=getchar();int tot=1;while ((c<'0'|| c>'9')&&c!='-') c=getchar();if (c=='-'){tot=-1;c=getchar();}
int sum=0;while (c>='0'&&c<='9'){sum=sum*10+c-'0';c=getchar();}return sum*tot;}
inline void wr(int x){if (x<0) {putchar('-');wr(-x);return;}if(x>=10)wr(x/10);putchar(x%10+'0');}
inline void wrn(int x){wr(x);put;}inline void wri(int x){wr(x);putchar(' ');}
inline void wrn(int x,int y){wri(x);wrn(y);}inline void wrn(int a,int b,int c){wri(a);wrn(b,c);}
int n,m;
int ksm(ll x,int k){
	int sum=1;
	while (k){
		if (k&1) sum=sum*x%mod;
		x=x*x%mod;k>>=1;
	}
	return sum;
}
int C(int n,int m){return (n<m||m<0)?0:1LL*fac[n]*inv[m]%mod*inv[n-m]%mod;}
void init(int x){
	fac[0]=1;F(i,1,x) fac[i]=1LL*fac[i-1]*i%mod;
	inv[x]=ksm(fac[x],mod-2);F(i,x-1,0) inv[i]=1LL*inv[i+1]*(i+1)%mod;
}
inline add(int &x,int k){x+=k;x-=(x>=mod)?mod;0;x+=(x<0)?mod:0;}
signed main(){	
	init(2000000);
	F(i,1,6) x[i]=read();
	F(i,1,6) y[i]=read();
	F(i,x[3]+1,x[4]){
		x=-gt(i,y[3]-1);
		x=1LL*x*gt2(i,y[3])%mod;
		x=1LL*x*(i+y[3])%mod;
		add(ans,x);
	}
	F(i,y[3]+1,y[4]){
		x=-gt(x[3]+1,i);
		x=1LL*x*gt2(x[3],i)%mod;
		x=1LL*x*(x[3]+i);
		add(ans,x);
	}
	x=-gt(x[3],y[3]);
	x=1LL*x*gt2(x[3],y[3])%mod;
	x=1LL*x*(x[3]+y[3]);
	add(ans,x);
	F(i,x[3],x[4]-1){
		x=gt(i,y[4]);
		x=1LL*x*gt2(i,y[4]+1)%mod;
		x=1LL*x*(i+y[4]+1)%mod;
		add(ans,x);
	}
	F(i,y[3],y[4]-1){
		x=gt(x[4],i);
		x=1LL*x*gt2(x[4]+1,i)%mod;
		x=1LL*x*(x[4]+1+i)%mod;
		add(ans,x);
	}
	x=gt(x[4],y[4]);
	x=1LL*x*gt2(x[4],y[4])%mod;
	x=1LL*x*(x[4]+y[4]+1)%mod;
	add(ans,x);
	return 0;
}

Submission Info

Submission Time
Task E - Sightseeing Plan
User yukuai
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2475 Byte
Status CE

Compile Error

./Main.cpp: In function ‘int C(int, int)’:
./Main.cpp:44:44: error: ‘fac’ was not declared in this scope
 int C(int n,int m){return (n<m||m<0)?0:1LL*fac[n]*inv[m]%mod*inv[n-m]%mod;}
                                            ^
./Main.cpp:44:51: error: ‘inv’ was not declared in this scope
 int C(int n,int m){return (n<m||m<0)?0:1LL*fac[n]*inv[m]%mod*inv[n-m]%mod;}
                                                   ^
./Main.cpp: In function ‘void init(int)’:
./Main.cpp:46:2: error: ‘fac’ was not declared in this scope
  fac[0]=1;F(i,1,x) fac[i]=1LL*fac[i-1]*i%mod;
  ^
./Main.cpp:47:2: error: ‘inv’ was not declared in this scope
  inv[x]=ksm(fac[x],mod-2);F(i,x-1,0) inv[i]=1LL*inv[i+1]*(i+1)%mod;
  ^
./Main.cpp: At global scope:
./Main.cpp:49:24: error: ISO C++ forbids declaration of ‘add’ with no type [-fpermissive]
 inline add(int &x,int k){x+=k;x-=(x>=mod)?mod;0;x+=(x<0)?mod:0;}
                        ^
./Main.cpp: In function ‘int add(int&, int)’:
./Main.cpp:49:46: error: expected ‘:’ before ‘;’ token...