不知道哪里爆了,还是取模哪里写错了。
#include <bits/stdc++.h>
using namespace std;
using ll = uint64_t;
#define endl '\n'
#define enter putchar('\n')
const int N = 1e3 + 100;
ll k;
ll res;
const ll p = 1e9 + 7;
ll x0, y00;
ll n, m;
ll dx, dy, x, y;
void solve()
{
// n = read(), m = read(), k = read(), x0 = read(), y00 = read();
cin >> n >> m >> k >> x0 >> y00;
for (ll i = 1; i <= k; i++)
{
// x = read(), y = read();
cin >> x >> y;
if (x == x0)
{
if (y > y00)
dy = m - y + 1;
else
dy = y;
res = (res + ll((dy % p) * (ll(m % p + n % p - 3 + m % p - dy % p) % p))) % p;
}
else if (y == y00)
{
if (x > x0)
dx = n - x + 1;
else
dx = x;
res = (res + ll((dx % p) * (ll(m % p + n % p - 3 + n % p - dx % p) % p))) % p;
}
else
{
if (x > x0)
dx = n - x + 1;
else
dx = x;
if (y > y00)
dy = m - y + 1;
else
dy = y;
res = (res + (dx % p) + (dy % p)) % p;
}
}
cout << res;
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int _ = 1;
while (_--)
solve();
return 0;
}