제출 #372241

#제출 시각아이디문제언어결과실행 시간메모리
372241gustasonTravels (LMIO17_keliones)C++14
45 / 100
104 ms25564 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define int ll
const int mod = 1e9 + 7;
signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, m;
    cin >> n >> m;
    vector<int> add(n);
    for(int i = 0; i < n; i++) {
        cin >> add[i];
    }

    bool adj[n][n];
    for(int i = 0; i < n; i++) {
        for(int j = i+1; j < n; j++) {
            adj[i][j] = true;
        }
    }
    for(int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        a--, b--;
        adj[a][b] = false;
    }

    vector<ll> cnt(n, 0), sum(n, 0);
    for(int i = 0; i < n; i++) {
        cnt[i] %= mod;
        ll cnts = (cnt[i] * add[i]) % mod;
        sum[i] += cnts;
        for(int j = i+1; j < n; j++) {
            if (!adj[i][j]) continue;
            cnt[j] += (cnt[i] + 1);
            cnt[j] %= mod;
            sum[j] += (sum[i] + add[i]);
            sum[j] %= mod;
        }
    }

    ll ans = 0;
    for(int i = 0; i < n; i++) {
        ans += sum[i];
        ans %= mod;
    }
    cout << ans;
    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...