Submission #1533719


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

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] });
                        }
                }
        }
}

int 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();
                        ans += res - 1;
                }
        }
        cout << ans << endl;
        return 0;
}

Submission Info

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

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 2
AC × 12
WA × 6
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 AC 2 ms 2560 KB
subtask0_sample-02.txt AC 2 ms 2560 KB
subtask1_01.txt AC 2 ms 2560 KB
subtask1_02.txt AC 2 ms 2560 KB
subtask1_03.txt AC 2 ms 2560 KB
subtask1_04.txt AC 2 ms 2560 KB
subtask1_05.txt AC 6 ms 2688 KB
subtask1_06.txt WA 8 ms 2688 KB
subtask1_07.txt AC 25 ms 2688 KB
subtask1_08.txt WA 28 ms 2688 KB
subtask1_09.txt AC 239 ms 2688 KB
subtask1_10.txt AC 260 ms 2688 KB
subtask1_11.txt AC 103 ms 2688 KB
subtask1_12.txt WA 1019 ms 2816 KB
subtask1_13.txt WA 1017 ms 2688 KB
subtask1_14.txt WA 996 ms 2688 KB
subtask1_15.txt AC 563 ms 2688 KB
subtask1_16.txt WA 1040 ms 2688 KB