Submission #3261403


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<int(n);++i)
typedef long long ll;

class modint {
  public:
    using ll = long long;
    ll num;
    static const ll MOD = 1e9+7;
    static vector<modint> factorial;

    modint(): num(0) {};
    modint(ll _n): num((_n + MOD) % MOD) {}
    modint(const modint &r): num(r.num) {}
    operator ll() const { return (num+MOD)%MOD; }
    friend istream& operator>>(istream& is, modint &r){
        ll num_;
        is >> num_;
        r = num_;
        return is;
    }
    modint operator+(const modint &r) const { return modint(num + r.num); }
    modint operator-(const modint &r) const { return modint(num - r.num); }
    modint operator*(const modint &r) const { return modint(num * r.num); }

    template<typename T>
    modint operator^(const T &r) const {
        if(r == 0) return 1;
        return (((*this)*(*this)) ^ (r/2)) * modint(r&1 ? num : 1);
    }
    modint operator/(const modint &r) const { return num * (r^(MOD-2)); }

    modint operator+=(const modint &r) { return *this = *this + r; }
    modint operator-=(const modint &r) { return *this = *this - r; }
    modint operator*=(const modint &r) { return *this = *this * r; }
    modint operator/=(const modint &r) { return *this = *this / r; }

    template<typename T>
    modint operator^=(const T &r) { return *this = *this ^ r; }

    static modint fact(int n){
        if((int)factorial.size() <= n) factorial.resize(n+1);
        if(factorial[n]) return factorial[n];
        if(n == 0) return 1;
        return factorial[n] = modint(n) * fact(n-1);
    }

    static modint com(ll n,ll r){
        return n >= r ? fact(n)/(fact(n-r)*fact(r)) : modint(0);
    }
};
vector<modint> modint::factorial;


modint solve(vector<ll> &v,int n){
    modint sum = 0;
    rep(i,n-1) sum += modint(v[i+1]-v[i]) * modint((i+1) * (n-i-1));
    return sum;
}

int main(void){
    int n,m;
    cin>>n>>m;
    vector<ll> x(n),y(m);
    rep(i,n) cin>>x[i];
    rep(i,m) cin>>y[i];
    cout<<solve(x,n) * solve(y,m)<<endl;
    return 0;
}

Submission Info

Submission Time
Task D - ###
User yana87
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2142 Byte
Status WA
Exec Time 89 ms
Memory 1792 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 500
Status
AC × 2
AC × 5
WA × 12
Set Name Test Cases
Sample 0_000.txt, 0_001.txt
All 0_000.txt, 0_001.txt, max.txt, min.txt, mod.txt, n2.txt, rndA.txt, rndB.txt, rndC.txt, rndD.txt, rndE.txt, rndF.txt, rndG.txt, rndH.txt, rndI.txt, rndJ.txt, var.txt
Case Name Status Exec Time Memory
0_000.txt AC 1 ms 256 KB
0_001.txt AC 1 ms 256 KB
max.txt WA 89 ms 1792 KB
min.txt AC 1 ms 256 KB
mod.txt AC 43 ms 1024 KB
n2.txt AC 43 ms 1024 KB
rndA.txt WA 85 ms 1792 KB
rndB.txt WA 84 ms 1792 KB
rndC.txt WA 84 ms 1792 KB
rndD.txt WA 85 ms 1792 KB
rndE.txt WA 86 ms 1792 KB
rndF.txt WA 84 ms 1792 KB
rndG.txt WA 84 ms 1792 KB
rndH.txt WA 84 ms 1792 KB
rndI.txt WA 84 ms 1792 KB
rndJ.txt WA 84 ms 1792 KB
var.txt WA 83 ms 1792 KB