結果
| 問題 |
No.1 道のショートカット
|
| コンテスト | |
| ユーザー |
ohuton_labo
|
| 提出日時 | 2014-12-23 18:38:52 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,756 bytes |
| コンパイル時間 | 514 ms |
| コンパイル使用メモリ | 69,456 KB |
| 実行使用メモリ | 13,880 KB |
| 最終ジャッジ日時 | 2024-07-08 03:39:01 |
| 合計ジャッジ時間 | 7,151 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 6 WA * 1 TLE * 1 -- * 32 |
ソースコード
#include <iostream>
#include <stack>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
int max(int a,int b){
if(a>=b)return a;
else return b;
}
void swap(int *a,int *b){
int tmp = *a;
*a = *b;
*b = tmp;
}
void babbleSort(int *data,int n){
for(int i=0;i<n;i++){
for(int j=n-1;j>i;j--){
if(data[j]>=data[j-1]){
swap(&data[j],&data[j-1]);
}
}
}
}
using namespace std;
/*
cin.ignore();
getline(cin,dataStr);
data = new int[n];
stringToInteger(&dataStr,data,n);
*/
void stringToInteger(string *str,int *data,int n){
for(int i=0;i<n;i++){
int spaceN = str->find(' ',0);
data[i] = atoi(str->substr(0,spaceN).c_str());
str->erase(0,spaceN+1);
}
}
int data[1500][1500][2];//data[i][j][k] i:iから jに向かう時の k:0コスト 1: 時間
int min1;
void solve(int *s,int *t,int c,int n,int v,int now,int time1){
if(c<0)return;
if(now==n){
if(min1>=time1){
min1=time1;
}
}
else if(now>n)return;
else{
for(int i=0;i<v;i++){
if(s[i]==now){
solve(s,t,c-data[s[i]][t[i]][0],n,v,t[i],time1+data[s[i]][t[i]][1]);
}
}
}
}
int main(){
int n,c,v;
cin>>n;
cin>>c;
cin>>v;
min1=10000000;
int *s,*t,*y,*m;
s = new int[v];
t = new int[v];
y = new int[v];
m = new int[v];
string str;
cin.ignore();
getline(cin,str);
stringToInteger(&str,s,v);
getline(cin,str);
stringToInteger(&str,t,v);
getline(cin,str);
stringToInteger(&str,y,v);
getline(cin,str);
stringToInteger(&str,m,v);
vector<int> *p;
p = new vector<int> [v];
for(int i=0;i<v;i++){
data[s[i]][t[i]][0]=y[i];
data[s[i]][t[i]][1]=m[i];
}
solve(s,t,c,n,v,1,0);
if(min1==10000000){
cout<<-1<<endl;
}
else{
cout<<min1<<endl;
}
}
ohuton_labo