Submission #906440

#TimeUsernameProblemLanguageResultExecution timeMemory
906440LudisseyFancy Fence (CEOI20_fancyfence)C++14
30 / 100
28 ms1884 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
 
int n,m;
int mod=1e9+7;
int MOD(int x) {
    return (x+mod)%mod;
}
int clc(int x, int y) {
    x=MOD(x);
    y=MOD(y); 
    return (((((x*(x+1)))/(long long)2)%mod)*((((y*(y+1)))/(long long)2)%mod))%mod; //non cest bon 
}
signed main() {
    ios::sync_with_stdio(false); cin.tie(nullptr);
    cin >> n;
    vector<int> h(n+1);
    vector<int> w(n+1);
    int totalw=0;
    for (int i = 1; i <= n; i++) cin>>h[i];
    for (int i = 1; i <= n; i++) { cin >> w[i]; totalw=(totalw+w[i])%mod; }
    int outp=0;
    h[0]=0;
    for (int i = 1; i <= n; i++)
    {
        // la formule elle marche je suis sur
        // non non juste 5 oui ou 4 sur cms
        //repete
        int side1=clc(totalw,h[i])-clc(totalw,h[i-1]);
        side1=MOD(side1); // 
        outp=MOD(outp+side1); //jai pas compris
        totalw-=w[i];
    }
    cout << outp << "\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...