Submission #1554294
Source Code Expand
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); long r = sc.nextInt(); long t = sc.nextInt(); List<Edge>[] node = new List[N]; for(int i = 0;i < N;i++) node[i] = new ArrayList<>(); for(int i = 0;i < M;i++){ int a = sc.nextInt() - 1; int b = sc.nextInt() - 1; int c = sc.nextInt(); node[a].add(new Edge(b,c)); node[b].add(new Edge(a,c)); } long sum = 0; for(int i = 0;i < N;i++){ int dist[] = dijkstra(node,i); for(int j = 1 ;j < N;j++){ final int d = (int) ((dist[j]*r + t)/t); final int idx = binarySearch(dist,d); if(idx < 0) break; sum += N - idx - (r < t?1:0); } } System.out.println(sum); } static int binarySearch(int []a,int v){ int l = 0, r = a.length - 1, s = -1; while(l <= r){ int m = (l + r)/2; if(a[m] >= v){ s = m; r = m - 1; }else{ l = m + 1; } } return s; } static int [] dijkstra(List<Edge>[] node,int s){ Queue<Pos> qu = new PriorityQueue<>(); qu.add(new Pos(s,0)); int[] dist = new int[node.length]; Arrays.fill(dist,Integer.MAX_VALUE); while(!qu.isEmpty()){ Pos p = qu.poll(); if(dist[p.id] < Integer.MAX_VALUE) continue; dist[p.id] = p.dist; for(Edge e: node[p.id]){ qu.add(new Pos(e.to,e.dist + p.dist)); } } Arrays.sort(dist); return dist; } static class Pos implements Comparable<Pos>{ int id,dist; Pos(int id,int d){ this.id = id; dist = d; } public int compareTo(Pos o){ return dist - o.dist; } } static class Edge{ int to,dist; Edge(int to,int d){ this.to = to; dist = d; } } }
Submission Info
Submission Time | |
---|---|
Task | C - ウサギとカメ |
User | suesue |
Language | Java8 (OpenJDK 1.8.0) |
Score | 100 |
Code Size | 2415 Byte |
Status | AC |
Exec Time | 2687 ms |
Memory | 150528 KB |
Compile Error
Note: ./Main.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
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 | 113 ms | 19540 KB |
subtask0_sample-02.txt | AC | 93 ms | 18772 KB |
subtask1_01.txt | AC | 109 ms | 21844 KB |
subtask1_02.txt | AC | 105 ms | 18768 KB |
subtask1_03.txt | AC | 102 ms | 21972 KB |
subtask1_04.txt | AC | 93 ms | 20692 KB |
subtask1_05.txt | AC | 160 ms | 24660 KB |
subtask1_06.txt | AC | 223 ms | 29916 KB |
subtask1_07.txt | AC | 558 ms | 46260 KB |
subtask1_08.txt | AC | 482 ms | 46284 KB |
subtask1_09.txt | AC | 1132 ms | 88684 KB |
subtask1_10.txt | AC | 894 ms | 86948 KB |
subtask1_11.txt | AC | 746 ms | 61900 KB |
subtask1_12.txt | AC | 2268 ms | 147768 KB |
subtask1_13.txt | AC | 2162 ms | 85184 KB |
subtask1_14.txt | AC | 2620 ms | 147808 KB |
subtask1_15.txt | AC | 1992 ms | 149752 KB |
subtask1_16.txt | AC | 2687 ms | 150528 KB |