結果
問題 | No.1 道のショートカット |
ユーザー | 4885rhkA |
提出日時 | 2015-07-15 13:19:06 |
言語 | C++11 (gcc 11.4.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 3,345 bytes |
コンパイル時間 | 452 ms |
コンパイル使用メモリ | 54,384 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-08 04:09:25 |
合計ジャッジ時間 | 1,577 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,376 KB |
testcase_02 | AC | 2 ms
5,376 KB |
testcase_03 | AC | 1 ms
5,376 KB |
testcase_04 | AC | 2 ms
5,376 KB |
testcase_05 | AC | 2 ms
5,376 KB |
testcase_06 | AC | 1 ms
5,376 KB |
testcase_07 | AC | 2 ms
5,376 KB |
testcase_08 | AC | 4 ms
5,376 KB |
testcase_09 | WA | - |
testcase_10 | WA | - |
testcase_11 | WA | - |
testcase_12 | WA | - |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | AC | 2 ms
5,376 KB |
testcase_16 | WA | - |
testcase_17 | AC | 2 ms
5,376 KB |
testcase_18 | WA | - |
testcase_19 | WA | - |
testcase_20 | WA | - |
testcase_21 | WA | - |
testcase_22 | WA | - |
testcase_23 | WA | - |
testcase_24 | WA | - |
testcase_25 | AC | 2 ms
5,376 KB |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | AC | 2 ms
5,376 KB |
testcase_29 | WA | - |
testcase_30 | WA | - |
testcase_31 | WA | - |
testcase_32 | WA | - |
testcase_33 | AC | 2 ms
5,376 KB |
testcase_34 | WA | - |
testcase_35 | WA | - |
testcase_36 | WA | - |
testcase_37 | WA | - |
testcase_38 | AC | 2 ms
5,376 KB |
testcase_39 | WA | - |
testcase_40 | WA | - |
testcase_41 | AC | 1 ms
5,376 KB |
testcase_42 | AC | 1 ms
5,376 KB |
testcase_43 | AC | 2 ms
5,376 KB |
ソースコード
//// //// main.cpp //// Q17 //// //// Created by AkihiroKOBAYASHI on 7/15/15. //// Copyright (c) 2015 Akhr5884. All rights reserved. //// #include <iostream> int n, c, v; int s[1600],t[1600],y[1600],m[1600]; int temp[51][51]; int totaltime= -1; int min(int a, int b) { if(a <= b) { return a; } return b; } void search(int start, int money, int time) { int count; if(start == n) { if(totaltime == -1) { totaltime = time; } else { totaltime = min(totaltime, time); } } else { for(count = 0; count < v; count++) { if(temp[s[count]][t[count]] == 0 && s[count] == start && money - y[count] >= 0) { temp[s[count]][t[count]] = 1; search(t[count], money - y[count], time + m[count]); } } } return; } int main(int argc, const char * argv[]) { std::cin >> n >> c >> v; int count, countA; for(count = 0; count < v; count++) { std::cin >> s[count]; } for(count = 0; count < v; count++) { std::cin >> t[count]; } for(count = 0; count < v; count++) { std::cin >> y[count]; } for(count = 0; count < v; count++) { std::cin >> m[count]; } for(count = 0; count < 51; count++) { for(countA = 0; countA < 51; countA++) { temp[count][countA] = 0; } } search(1, c, 0); std::cout << totaltime << "\n"; return 0; } //#include <iostream> //#include <string> //#include <vector> //#include <algorithm> //#include <functional> //#include <complex> //#include <cassert> //#include <map> //#include <set> //#include <queue> //#include <tuple> //#include <limits> //#include <cstdint> // //using namespace std; //const int INF = numeric_limits<int>::max() / 2 - 1; // //int main() //{ // typedef tuple<int, int, int> edge; // vector<vector<edge>> G; // // int N, C, V; // { // cin >> N >> C >> V; // vector<int> S(V), T(V), Y(V), M(V); // for (int i = 0; i < V; i++) { // cin >> S[i]; // S[i]--; // } // for (int i = 0; i < V; i++) { // cin >> T[i]; // T[i]--; // } // for (int i = 0; i < V; i++) { // cin >> Y[i]; // } // for (int i = 0; i < V; i++) { // cin >> M[i]; // } // G.assign(N, vector<edge>()); // for (int i = 0; i < V; i++) { // G[S[i]].push_back(edge(T[i], Y[i], M[i])); // } // } // // vector<vector<int>> dp(N, vector<int>(C + 1, INF)); // dp[0][C] = 0; // for (int i = 0; i<N; i++) { // for (int j = 0; j <= C; j++) { // if (dp[i][j] == INF) // continue; // for (int k = 0; k<(int)G[i].size(); k++) { // int to, cost, time; // tie(to, cost, time) = G[i][k]; // if (j < cost) // continue; // cost = j - cost; // dp[to][cost] = min(dp[to][cost], time + dp[i][j]); // } // } // } // int ans = INF; // for (int i = 0; i <= C; i++) { // ans = min(ans, dp[N - 1][i]); // } // cout << (ans == INF ? -1 : ans) << endl; // return 0; //}