結果
問題 |
No.1 道のショートカット
|
ユーザー |
![]() |
提出日時 | 2014-11-08 00:43:47 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,585 bytes |
コンパイル時間 | 2,551 ms |
コンパイル使用メモリ | 78,852 KB |
実行使用メモリ | 59,936 KB |
最終ジャッジ日時 | 2024-07-08 03:34:45 |
合計ジャッジ時間 | 10,157 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 11 WA * 24 RE * 5 |
ソースコード
import java.util.*; class miti{ int now; int to; int cost; int time; miti(int now,int to,int cost,int time){ this.now = now; this.to = to; this.cost=cost; this.time = time; } } class mitiComparator implements Comparator<miti>{ @Override public int compare(miti o1, miti o2) { if(o1.now>o2.now){ return 1; }else if(o1.now==o2.now){ return 0; }else{ return -1; } } } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N=sc.nextInt(); int C =sc.nextInt(); int V=sc.nextInt(); int[] S = new int[V]; int[] T = new int[V]; int[] Y = new int[V]; int[] M=new int[V]; for(int i=0;i<V;i++){ S[i]=sc.nextInt(); } for(int i=0;i<V;i++){ T[i]=sc.nextInt(); } for(int i=0;i<V;i++){ Y[i]=sc.nextInt(); } for(int i=0;i<V;i++){ M[i]=sc.nextInt(); } miti[] miti1=new miti[V]; for(int i=0;i<V;i++){ miti1[i]=new miti(S[i],T[i],Y[i],M[i]); } Arrays.sort(miti1,new mitiComparator()); int[] sumc =new int[V+1]; int[] sumt = new int[V+1]; for(int i=2;i<=V;i++){ sumc[i]=Integer.MAX_VALUE; sumt[i]=Integer.MAX_VALUE; } for(miti a:miti1){ if(sumc[a.now]==Integer.MAX_VALUE) continue; if(sumc[a.now]+a.cost<=C){ sumc[a.to]=Math.min(sumc[a.to], sumc[a.now]+a.cost); }else{ continue; } sumt[a.to]=Math.min(sumt[a.to], sumc[a.now]+a.time); } if(sumc[N]<Integer.MAX_VALUE){ System.out.println(sumt[N]); }else{ System.out.println(-1); } } }