85pts求调。能模的都模了,int128也用了
查看原帖
85pts求调。能模的都模了,int128也用了
351679
shaun2000楼主2024/7/30 18:41
#include<bits/stdc++.h>
using namespace std;
const long long MOD=1000000007;
int main()
{

    long long n1,m1,k1,x2,y2,xx1,yy1;
    scanf("%lld%lld%lld",&n1,&m1,&k1);
    scanf("%lld%lld",&x2,&y2);
    __uint128_t n=n1,m=m1,k=k1,x=x2,y=y2,xx,yy,ans=0;
    for(;k>0;k--)
    {
        scanf("%lld%lld",&xx1,&yy1);
        xx=xx1;
        yy=yy1;
        if(x!=xx && y!=yy)
        {
            if(xx>x)
                ans+=((n)%MOD-xx%MOD+1)%MOD;
            else
                ans+=xx%MOD;

            if(yy>y)
                ans+=(m%MOD-yy%MOD+1)%MOD;
            else
                ans+=yy%MOD;
        }
        else if(x==xx)
        {
            if(yy<y)
                ans+=yy%MOD*(n%MOD+m%MOD-yy%MOD-3+m%MOD)%MOD;
            else
                ans+=(m-yy+1)%MOD*(n+m+yy-4)%MOD;
        }
        else
        {
            if(xx<x)
                ans+=xx%MOD*(n%MOD+m%MOD-xx%MOD-3+n%MOD)%MOD;
            else
                ans+=(n%MOD-xx%MOD+1)%MOD*(n%MOD+m%MOD+xx%MOD-4)%MOD;
        }
        ans%=1000000007;
    }
    long long ans2=ans;
    printf("%lld",ans2);
    return 0;
}


2024/7/30 18:41
加载中...