Submission #1533736


Source Code Expand

#include "bits/stdc++.h"
using namespace std;

#define OUT(x)  cerr << #x << " = " << x << endl;
#define all(x)  x.begin(), x.end()
#define mp      make_pair
#define pii     pair<int, int>
#define pll     pair<long long, long long>
#define ll      long long

#define int long long

struct edge {
        int to, cost;
        edge(int to, int cost) : to(to), cost(cost) { };
        bool operator > (const edge &r) const { return cost > r.cost; }
        bool operator < (const edge &r) const { return cost < r.cost; }
};

static const int INF = 0x3f3f3f3f;

vector<edge> g[101010];
int n;

void dijkstra(int start, vector<int> &dis) {
        priority_queue<edge, vector<edge>, greater<edge>> q;
        dis[start] = 0;
        q.push((edge){ start, 0 });
        while (!q.empty()) {
                edge e1 = q.top(); q.pop();
                for (auto e2 : g[e1.to]) {
                        if (dis[e2.to] > dis[e1.to] + e2.cost) {
                                dis[e2.to] = dis[e1.to] + e2.cost;
                                q.push((edge){ e2.to, dis[e2.to] });
                        }
                }
        }
}

signed main() {
        int n, m;
        double r, t;
        cin >> n >> m >> r >> t;
        vector<int> d(n);
        for (int i = 0; i < m; i ++) {
                int a, b, c;
                cin >> a >> b >> c;
                a --, b --;
                g[a].push_back({b, c});
                g[b].push_back({a, c});
        }
        int ans = 0;
        for (int goal = 0; goal < n; goal ++) {
                vector<int> dis(n, INF);
                dijkstra(goal, dis);
                vector<int> sorted_dis = dis;
                sort(all(sorted_dis));
                for (int a = 0; a < n; a ++) {
                        if (a == goal) continue;
                        int dis_a = dis[a];
                        int dis_b = dis_a * t;
                        dis_b = (dis_b + r - 1) / r;
                        int res = lower_bound(all(sorted_dis), dis_b) - sorted_dis.begin();
                        if (a <= res) res --;
                        ans += res;
                }
        }
        cout << ans << endl;
        return 0;
}

Submission Info

Submission Time
Task C - ウサギとカメ
User KokiYmgch
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2260 Byte
Status WA
Exec Time 1118 ms
Memory 2816 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
WA × 2
WA × 18
Set Name Test Cases
Sample subtask0_sample-01.txt, subtask0_sample-02.txt
All subtask0_sample-01.txt, subtask0_sample-02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt
Case Name Status Exec Time Memory
subtask0_sample-01.txt WA 2 ms 2560 KB
subtask0_sample-02.txt WA 2 ms 2560 KB
subtask1_01.txt WA 2 ms 2560 KB
subtask1_02.txt WA 3 ms 2560 KB
subtask1_03.txt WA 3 ms 2560 KB
subtask1_04.txt WA 2 ms 2560 KB
subtask1_05.txt WA 6 ms 2688 KB
subtask1_06.txt WA 9 ms 2688 KB
subtask1_07.txt WA 27 ms 2816 KB
subtask1_08.txt WA 30 ms 2688 KB
subtask1_09.txt WA 253 ms 2816 KB
subtask1_10.txt WA 272 ms 2688 KB
subtask1_11.txt WA 109 ms 2816 KB
subtask1_12.txt WA 1075 ms 2816 KB
subtask1_13.txt WA 1066 ms 2816 KB
subtask1_14.txt WA 1065 ms 2816 KB
subtask1_15.txt WA 613 ms 2816 KB
subtask1_16.txt WA 1118 ms 2816 KB