답안 #720243

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
720243 2023-04-07T17:41:21 Z Ahmed57 Ceste (COCI17_ceste) C++14
64 / 160
191 ms 17084 KB
#include <bits/stdc++.h>

using namespace std;
#define int long long
long long cost[105][10005];
vector<pair<int,pair<int,int>>> adj[105];
signed main(){
    int n,m;
    cin>>n>>m;
    //if(n<=100)assert(0);
    for(int i = 0;i<=n;i++){
        for(int j = 0;j<=10004;j++){
            cost[i][j] = 1e15;
        }
    }
    for(int i = 0;i<m;i++){
        int a,b,c,d;
        cin>>a>>b>>c>>d;
        adj[a].push_back({b,{c,d}});
        adj[b].push_back({a,{c,d}});
    }
    priority_queue<pair<int,pair<int,int>>> q;
    q.push({0,{0,1}});
    cost[1][0]=0;
    while(!q.empty()){
        int no = q.top().second.second;
        int se = q.top().second.first;
        int co = -q.top().first;
        q.pop();
        if(cost[no][se]<co)continue;
        for(auto j:adj[no]){
            if(se+j.second.first>10004)continue;
            if(cost[j.first][se+j.second.first]>co+j.second.second){
                cost[j.first][se+j.second.first] =  co+j.second.second;
                q.push({-cost[j.first][se+j.second.first],{se+j.second.first,j.first}});
            }
        }
    }
    for(int i = 2;i<=n;i++){
        long long ans = 1e15;
        for(long long j = 1;j<=10004;j++){
            if(cost[i][j]<1e15)ans = min(ans,j*cost[i][j]);
        }
        if(ans==1e15){
            cout<<"-1"<<endl;
        }
        else cout<<ans<<endl;
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 27 ms 1336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 191 ms 11336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 157 ms 6108 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 154 ms 11364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 15 ms 16976 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 13 ms 17064 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 13 ms 16980 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 12 ms 17084 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 15 ms 17036 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 17 ms 17024 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -