//// //// main.cpp //// Q17 //// //// Created by AkihiroKOBAYASHI on 7/15/15. //// Copyright (c) 2015 Akhr5884. All rights reserved. //// #include int n, c, v; int s[1600],t[1600],y[1600],m[1600]; int temp[51][51]; int totaltime= -1; void search(int start, int money, int time) { int count; if(totaltime == -1 || time < totaltime) { if(start == n) { if(totaltime == -1) { totaltime = time; } else { totaltime = time; } } else { for(count = 0; count < v; count++) { if(s[count] == start && money - y[count] >= 0) { 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] = -1; } } search(1, c, 0); std::cout << totaltime << "\n"; return 0; }