Submission #8214264


Source Code Expand

/*program by mangoyang*/
#include <bits/stdc++.h>
#define inf (0x7f7f7f7f)
#define Max(a, b) ((a) > (b) ? (a) : (b))
#define Min(a, b) ((a) < (b) ? (a) : (b))
typedef long long ll;
using namespace std;
template <class T>
inline void read(T &x){
	int ch = 0, f = 0; x = 0;
	for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = 1;
	for(; isdigit(ch); ch = getchar()) x = x * 10 + ch - 48;
	if(f) x = -x;
}
const int N = 2000005, mod = 1e9 + 7;
int js[N], inv[N], X[7], Y[7], ans;
inline void up(int &x, int y){ 
	x = x + y >= mod ? x + y - mod : x + y; 
}
inline int Pow(int a, int b){
	int ans = 1;
	for(; b; b >>= 1, a = 1ll * a * a % mod)
		if(b & 1) ans = 1ll * ans * a % mod;
	return ans;
}
inline int C(int x, int y){
	return 1ll * js[x] * inv[y] % mod * inv[x-y] % mod;
}
inline int GAO(int X1, int Y1, int X2, int Y2){
	int res = 0;
	up(res, C(X2 + Y2 + 2, Y2 + 1));
	up(res, C(X1 + Y1, Y1));
	up(res, mod - C(X2 + Y1 + 1, X2 + 1));
	up(res, mod - C(Y2 + X1 + 1, Y2 + 1));
	return res;
}

inline int gao1(int x, int y){
	return 1ll * GAO(x - X[2], y - Y[2] - 1, x - X[1], y - Y[1] - 1)
		* GAO(X[5] - x, Y[5] - y, X[6] - x, Y[6] - y) % mod;
}
inline int gao2(int x, int y){
	return 1ll * GAO(x - X[2], y - Y[2], x - X[1], y - Y[1])
		* GAO(X[5] - x, Y[5] - y - 1, X[6] - x, Y[6] - y - 1) % mod;
}
inline int gao3(int x, int y){
	return 1ll * GAO(x - X[2] - 1, y - Y[2], x - X[1] - 1, y - Y[1])
		* GAO(X[5] - x, Y[5] - y, X[6] - x, Y[6] - y) % mod;
}
inline int gao4(int x, int y){
	return 1ll * GAO(x - X[2], y - Y[2], x - X[1], y - Y[1])
		* GAO(X[5] - x - 1, Y[5] - y, X[6] - x - 1, Y[6] - y) % mod;
}
int main(){
	js[0] = inv[0] = 1;
	for(int i = 1; i < N; i++){
		js[i] = 1ll * js[i-1] * i % mod;
		inv[i] = Pow(js[i], mod - 2);
	}
	for(int i = 1; i <= 6; i++) read(X[i]);
	for(int i = 1; i <= 6; i++) read(Y[i]);
	for(int i = X[3]; i <= X[4]; i++){
		up(ans, 1ll * gao1(i, Y[3]) * (mod - i - Y[3]) % mod);
		up(ans, 1ll * gao2(i, Y[4]) * (i + Y[4] + 1) % mod);
	}
	for(int i = Y[3]; i <= Y[4]; i++){
		up(ans, 1ll * gao3(X[3], i) * (mod - X[3] - i) % mod);
		up(ans, 1ll * gao4(X[4], i) * (X[4] + i + 1) % mod);
	}
	cout << ans << endl;
	return 0;
}

Submission Info

Submission Time
Task E - Sightseeing Plan
User luogu_bot4
Language C++14 (GCC 5.4.1)
Score 1600
Code Size 2162 Byte
Status AC
Exec Time 519 ms
Memory 15872 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1600 / 1600
Status
AC × 3
AC × 30
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 318 ms 15872 KB
sample_02.txt AC 318 ms 15872 KB
sample_03.txt AC 347 ms 15872 KB
subtask_1_01.txt AC 318 ms 15872 KB
subtask_1_02.txt AC 326 ms 15872 KB
subtask_1_03.txt AC 447 ms 15872 KB
subtask_1_04.txt AC 344 ms 15872 KB
subtask_1_05.txt AC 412 ms 15872 KB
subtask_1_06.txt AC 331 ms 15872 KB
subtask_1_07.txt AC 358 ms 15872 KB
subtask_1_08.txt AC 349 ms 15872 KB
subtask_1_09.txt AC 348 ms 15872 KB
subtask_1_10.txt AC 346 ms 15872 KB
subtask_1_11.txt AC 347 ms 15872 KB
subtask_1_12.txt AC 317 ms 15872 KB
subtask_1_13.txt AC 328 ms 15872 KB
subtask_1_14.txt AC 318 ms 15872 KB
subtask_1_15.txt AC 317 ms 15872 KB
subtask_1_16.txt AC 335 ms 15872 KB
subtask_1_17.txt AC 326 ms 15872 KB
subtask_1_18.txt AC 331 ms 15872 KB
subtask_1_19.txt AC 317 ms 15872 KB
subtask_1_20.txt AC 519 ms 15872 KB
subtask_1_21.txt AC 317 ms 15872 KB
subtask_1_22.txt AC 456 ms 15872 KB
subtask_1_23.txt AC 498 ms 15872 KB
subtask_1_24.txt AC 461 ms 15872 KB