40分求助(4AC)
查看原帖
40分求助(4AC)
602624
___njr___楼主2022/10/28 19:25

前四个点$$AC,后六个点WAWA

#include<bits/stdc++.h>
using namespace std;
#define itn int
#define int long long
const int maxN=500010;
const int P=1e9+7;

long long front_squea[maxN];
long long front_squeb[maxN];
int a[maxN],b[maxN];
inline void read(int & n) {
    n=0;
    char c=getchar();
    while(c<'0'||c>'9') c=getchar();
    while(c>='0'&&c<='9') n=(n<<3)+(n<<1)+(c^48),c=getchar();
}
signed main() {
    int n;
    scanf("%lld",&n);
    for(int i=1;i<=n;i++) read(a[i]);
    for(int i=1;i<=n;i++) read(b[i]);
    a[0]=b[0]=0;
    for(int i=1;i<=n;i++) front_squea[i]=(front_squea[i-1]+a[i])%P;
    for(int i=1;i<=n;i++) front_squeb[i]=(front_squeb[i-1]+b[i])%P;
    long long ans=0;
    long long a_i=0,b_i=0,ab_i=0;
    for(itn i=1;i<=n;i++)
    {
        a_i+=front_squea[i]%P;
        b_i+=front_squeb[i]%P;
        ab_i+=front_squea[i]*front_squeb[i]%P;
    }
    ans=((n+1)*ab_i-(a_i*b_i)%P)%P;
    printf("%lld",abs(ans));
    return 0;
}
2022/10/28 19:25
加载中...