2750 2023. 01. 20 18:58:18 Catt Varázserdő cpp17 Accepted 100/100 2.289s 387072 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const ll MOD = 1e9 + 7;

int main() {
    ll n,m;
    cin >> n >> m;

    vector<pair<ll, pair<ll, ll>> > g(m);
    for(ll i = 0; i < m; i++) {
        ll x,y,z;
        cin >> x >> y >> z;
        g[i] = {z, {x, y}};
    }

    vector<map<ll, ll> > v(n+1);
    ll mo = 0;

    sort(g.begin(), g.end());
    for(ll i = 0; i < m; i++) {
        ll x,y,z;
        z = g[i].first, x = g[i].second.first, y = g[i].second.second;
        mo += v[x][z-1] + v[y][z-1] + 2;
        mo %= MOD;
        v[x][z] += v[y][z-1] + 1;
        v[x][z] %= MOD;
        v[y][z] += v[x][z-1] + 1;
        v[y][z] %= MOD;
    }

    cout << (mo + MOD - m) % MOD;
    return 0;
}
Subtask Sum Test Verdict Time Memory
subtask1 0/0
1 Accepted 3ms 1812 KiB
2 Accepted 2ms 2008 KiB
3 Accepted 2ms 2208 KiB
subtask2 7/7
4 Accepted 2ms 2476 KiB
5 Accepted 3ms 3192 KiB
6 Accepted 16ms 7684 KiB
7 Accepted 17ms 9152 KiB
8 Accepted 1.014s 316512 KiB
9 Accepted 967ms 298704 KiB
10 Accepted 908ms 280356 KiB
11 Accepted 855ms 267276 KiB
12 Accepted 830ms 261560 KiB
13 Accepted 925ms 261164 KiB
subtask3 9/9
14 Accepted 2ms 3604 KiB
15 Accepted 3ms 4144 KiB
16 Accepted 158ms 48564 KiB
17 Accepted 751ms 85672 KiB
18 Accepted 1.939s 306368 KiB
19 Accepted 1.248s 233224 KiB
20 Accepted 1.337s 240184 KiB
subtask4 14/14
21 Accepted 2ms 4012 KiB
22 Accepted 2ms 4264 KiB
23 Accepted 2ms 4368 KiB
24 Accepted 2ms 4608 KiB
subtask5 20/20
25 Accepted 3ms 5056 KiB
26 Accepted 8ms 6568 KiB
27 Accepted 8ms 5716 KiB
28 Accepted 9ms 6728 KiB
29 Accepted 9ms 6724 KiB
30 Accepted 8ms 6464 KiB
31 Accepted 8ms 5884 KiB
32 Accepted 8ms 5888 KiB
subtask6 50/50
33 Accepted 17ms 10504 KiB
34 Accepted 204ms 65356 KiB
35 Accepted 1.101s 66000 KiB
36 Accepted 1.139s 70396 KiB
37 Accepted 1.574s 314120 KiB
38 Accepted 1.74s 348288 KiB
39 Accepted 2.289s 387072 KiB
40 Accepted 1.914s 355716 KiB
41 Accepted 1.694s 155804 KiB