Submission #1070322
Source Code Expand
#include <iostream> #include <vector> #include <algorithm> #include <queue> #define INF (1<<30) using namespace std; struct Edge { int a, b, cost; Edge() {} Edge(int a, int b, int cost) :a(a), b(b), cost(cost) {} bool operator < (Edge& o) const{ return cost < o.cost; } }; int main() { cin.tie(0); ios::sync_with_stdio(false); int N, M; cin >> N >> M; vector<vector<Edge>> G(N + 1); vector<Edge> e(M + 1); vector<vector<int>> dist(N + 1, vector<int>(N + 1, INF)); // initialize for (int i = 0; i < M;i++) { int a, b, c; cin >> a >> b >> c; G[a].emplace_back(Edge(a, b, c)); G[b].emplace_back(Edge(b, a, c)); e[i] = Edge(a, b, c); } // dist[i][j] = i-j間の最短距離値 for (int i = 1; i <= N; i++) { queue<int> q; dist[i][i] = 0; q.push(i); while (!q.empty()) { int pre = q.front(); q.pop(); for (auto o : G[pre]) { int next = o.b; if (dist[i][pre] + o.cost < dist[i][next]) { dist[i][next] = dist[i][pre] + o.cost; q.push(next); } } } } int ans = M; for (int i = 0; i < M; i++) { bool f = false; for (int j = 1; j <= N; j++) { if (dist[j][e[i].a] + e[i].cost == dist[j][e[i].b]) f = true; } if (f) ans--; } cout << ans << endl; }
Submission Info
Submission Time | |
---|---|
Task | D - Candidates of No Shortest Paths |
User | clavis1107 |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1275 Byte |
Status | AC |
Exec Time | 5 ms |
Memory | 384 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt |
All | subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 3 ms | 256 KB |
sample_02.txt | AC | 3 ms | 256 KB |
subtask_1_01.txt | AC | 3 ms | 256 KB |
subtask_1_02.txt | AC | 3 ms | 256 KB |
subtask_1_03.txt | AC | 3 ms | 256 KB |
subtask_1_04.txt | AC | 3 ms | 256 KB |
subtask_1_05.txt | AC | 4 ms | 384 KB |
subtask_1_06.txt | AC | 3 ms | 256 KB |
subtask_1_07.txt | AC | 3 ms | 256 KB |
subtask_1_08.txt | AC | 3 ms | 256 KB |
subtask_1_09.txt | AC | 3 ms | 256 KB |
subtask_1_10.txt | AC | 3 ms | 256 KB |
subtask_1_11.txt | AC | 3 ms | 256 KB |
subtask_1_12.txt | AC | 3 ms | 256 KB |
subtask_1_13.txt | AC | 3 ms | 256 KB |
subtask_1_14.txt | AC | 3 ms | 256 KB |
subtask_1_15.txt | AC | 3 ms | 256 KB |
subtask_1_16.txt | AC | 3 ms | 256 KB |
subtask_1_17.txt | AC | 3 ms | 256 KB |
subtask_1_18.txt | AC | 3 ms | 256 KB |
subtask_1_19.txt | AC | 4 ms | 384 KB |
subtask_1_20.txt | AC | 3 ms | 256 KB |
subtask_1_21.txt | AC | 3 ms | 256 KB |
subtask_1_22.txt | AC | 3 ms | 256 KB |
subtask_1_23.txt | AC | 3 ms | 256 KB |
subtask_1_24.txt | AC | 4 ms | 384 KB |
subtask_1_25.txt | AC | 4 ms | 384 KB |
subtask_1_26.txt | AC | 4 ms | 384 KB |
subtask_1_27.txt | AC | 5 ms | 384 KB |
subtask_1_28.txt | AC | 4 ms | 384 KB |