結果
問題 | No.1 道のショートカット |
ユーザー | kou6839 |
提出日時 | 2014-11-08 11:50:48 |
言語 | Java (openjdk 23) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,869 bytes |
コンパイル時間 | 2,418 ms |
コンパイル使用メモリ | 79,648 KB |
実行使用メモリ | 52,180 KB |
最終ジャッジ日時 | 2024-07-08 03:35:18 |
合計ジャッジ時間 | 10,975 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 137 ms
41,400 KB |
testcase_01 | AC | 139 ms
41,340 KB |
testcase_02 | AC | 137 ms
41,512 KB |
testcase_03 | AC | 143 ms
41,608 KB |
testcase_04 | AC | 139 ms
41,096 KB |
testcase_05 | AC | 140 ms
41,548 KB |
testcase_06 | AC | 146 ms
41,540 KB |
testcase_07 | AC | 149 ms
41,340 KB |
testcase_08 | AC | 236 ms
45,924 KB |
testcase_09 | AC | 217 ms
44,508 KB |
testcase_10 | AC | 223 ms
45,828 KB |
testcase_11 | TLE | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
testcase_15 | -- | - |
testcase_16 | -- | - |
testcase_17 | -- | - |
testcase_18 | -- | - |
testcase_19 | -- | - |
testcase_20 | -- | - |
testcase_21 | -- | - |
testcase_22 | -- | - |
testcase_23 | -- | - |
testcase_24 | -- | - |
testcase_25 | -- | - |
testcase_26 | -- | - |
testcase_27 | -- | - |
testcase_28 | -- | - |
testcase_29 | -- | - |
testcase_30 | -- | - |
testcase_31 | -- | - |
testcase_32 | -- | - |
testcase_33 | -- | - |
testcase_34 | -- | - |
testcase_35 | -- | - |
testcase_36 | -- | - |
testcase_37 | -- | - |
testcase_38 | -- | - |
testcase_39 | -- | - |
testcase_40 | -- | - |
testcase_41 | -- | - |
testcase_42 | -- | - |
testcase_43 | -- | - |
ソースコード
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 { static int ans=Integer.MAX_VALUE; static void dfs(int now,int nowcost,int nowtime,int goal,ArrayList<miti>[] mitilist,int limcost){ if(now==goal){ ans=Math.min(nowtime,ans); } if(mitilist[now]==null) return; for(int i=0;i<mitilist[now].size();i++){ if(nowcost+mitilist[now].get(i).cost>limcost){ continue; } dfs(+mitilist[now].get(i).to,nowcost+mitilist[now].get(i).cost,nowtime+mitilist[now].get(i).time,goal,mitilist,limcost); } } 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()); ArrayList<miti>[] mitilist = new ArrayList[V+1]; for(miti a:miti1){ if(mitilist[a.now]==null){ mitilist[a.now]=new ArrayList<miti>(); } mitilist[a.now].add(a); } dfs(1,0,0,N,mitilist,C); if(ans==Integer.MAX_VALUE){ System.out.println(-1); }else{ System.out.println(ans); } } }