Submission #3230495
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 1000055
#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,fac[N*3],inv[N*3],x[10],y[10],ans,px;
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);D(i,x-1,0) inv[i]=1LL*inv[i+1]*(i+1)%mod;
}
inline void add(int &x,int k){x+=k;x-=(x>=mod)?mod:0;x+=(x<0)?mod:0;}
inline int ch(int a,int b,int c,int d){
if (a<=c&&d>=b) return C(c-a+d-b+2,d-b+1);
else return 0;
}
inline int gt(int a,int b){
return ((ch(x[1],y[1],a,b)-ch(x[1],y[2]+1,a,b)-ch(x[2]+1,y[1],a,b)+ch(x[2]+1,y[2]+1,a,b))%mod+mod)%mod;
}
inline int gt2(int a,int b){
return ((ch(a,b,x[6],y[6])-ch(a,b,x[5]-1,y[6])-ch(a,b,x[6],y[5]-1)+ch(a,b,x[5]-1,y[5]-1))%mod+mod)%mod;
}
signed main(){
init(3000000);
F(i,1,6) x[i]=read();
F(i,1,6) y[i]=read();
F(i,x[3]+1,x[4]){
px=-gt(i,y[3]-1);
px=1LL*px*gt2(i,y[3])%mod;
px=1LL*px*(i+y[3])%mod;
add(ans,px);
}
F(i,y[3]+1,y[4]){
px=-gt(x[3]-1,i);
px=1LL*px*gt2(x[3],i)%mod;
px=1LL*px*(x[3]+i)%mod;
add(ans,px);
}
px=-gt(x[3],y[3]);
px=1LL*px*gt2(x[3],y[3])%mod;
px=1LL*px*(x[3]+y[3])%mod;
add(ans,px);
F(i,x[3],x[4]-1){
px=gt(i,y[4]);
px=1LL*px*gt2(i,y[4]+1)%mod;
px=1LL*px*(i+y[4]+1)%mod;
add(ans,px);
}
F(i,y[3],y[4]-1){
px=gt(x[4],i);
px=1LL*px*gt2(x[4]+1,i)%mod;
px=1LL*px*(x[4]+1+i)%mod;
add(ans,px);
}
px=gt(x[4],y[4]);
px=1LL*px*gt2(x[4],y[4])%mod;
px=1LL*px*(x[4]+y[4]+1)%mod;
add(ans,px);
wrn(ans);
return 0;
}
Submission Info
Submission Time |
|
Task |
E - Sightseeing Plan |
User |
yukuai |
Language |
C++14 (GCC 5.4.1) |
Score |
1600 |
Code Size |
2952 Byte |
Status |
AC |
Exec Time |
250 ms |
Memory |
47104 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1600 / 1600 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
All |
sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
43 ms |
47104 KB |
sample_02.txt |
AC |
43 ms |
47104 KB |
sample_03.txt |
AC |
78 ms |
47104 KB |
subtask_1_01.txt |
AC |
43 ms |
47104 KB |
subtask_1_02.txt |
AC |
53 ms |
47104 KB |
subtask_1_03.txt |
AC |
176 ms |
47104 KB |
subtask_1_04.txt |
AC |
71 ms |
47104 KB |
subtask_1_05.txt |
AC |
141 ms |
47104 KB |
subtask_1_06.txt |
AC |
58 ms |
47104 KB |
subtask_1_07.txt |
AC |
86 ms |
47104 KB |
subtask_1_08.txt |
AC |
76 ms |
47104 KB |
subtask_1_09.txt |
AC |
75 ms |
47104 KB |
subtask_1_10.txt |
AC |
78 ms |
47104 KB |
subtask_1_11.txt |
AC |
79 ms |
47104 KB |
subtask_1_12.txt |
AC |
43 ms |
47104 KB |
subtask_1_13.txt |
AC |
56 ms |
47104 KB |
subtask_1_14.txt |
AC |
43 ms |
47104 KB |
subtask_1_15.txt |
AC |
43 ms |
47104 KB |
subtask_1_16.txt |
AC |
65 ms |
47104 KB |
subtask_1_17.txt |
AC |
54 ms |
47104 KB |
subtask_1_18.txt |
AC |
60 ms |
47104 KB |
subtask_1_19.txt |
AC |
45 ms |
47104 KB |
subtask_1_20.txt |
AC |
250 ms |
47104 KB |
subtask_1_21.txt |
AC |
43 ms |
47104 KB |
subtask_1_22.txt |
AC |
185 ms |
47104 KB |
subtask_1_23.txt |
AC |
227 ms |
47104 KB |
subtask_1_24.txt |
AC |
190 ms |
47104 KB |