답안 #787086

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
787086 2023-07-18T19:30:30 Z gagik_2007 악어의 지하 도시 (IOI11_crocodile) C++17
89 / 100
416 ms 98164 KB
#include "crocodile.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pii;
typedef pair<ll, ll> pll;

#define ff first
#define ss second

ll ttt;
const ll INF=1e18;
const ll MOD=1e9+7;
const ll N=1000007;
ll n,m,k;
vector<pair<ll,ll>>g[N];

int travel_plan(int NN, int MM, int R[][2], int L[], int KK, int P[]){
    n=NN;
    m=MM;
    k=KK;
    for(ll i=0;i<m;i++){
        // cout<<R[i][0]<<" "<<R[i][1]<<endl;
        g[R[i][0]].push_back(make_pair(R[i][1],L[i]));
        g[R[i][1]].push_back(make_pair(R[i][0],L[i]));
    }
    priority_queue<pii,vector<pii>,greater<pii>>q;
    vector<ll>mn(n+1,INF),smn(n+1,INF);
    // cout<<mn[0]<<" "<<smn[0]<<endl;
    for(ll i=0;i<k;i++){
        q.push(make_pair(0,P[i]));
        mn[P[i]]=smn[P[i]]=0;
    }
    while(!q.empty()){
        ll v=q.top().ss;
        ll w=q.top().ff;
        // cout<<v<<" "<<w<<endl;
        // cout<<mn[v]<<" "<<smn[v]<<endl<<endl;
        q.pop();
        if(smn[v]==w){
            for(pii x:g[v]){
                ll to=x.ff;
                ll dist=x.ss;
                // cout<<v<<" "<<to<<" "<<dist<<endl;
                // cout<<mn[to]<<" "<<smn[v]<<endl;
                // cout<<endl;
                if(mn[to]>smn[v]+dist){
                    smn[to]=mn[to];
                    mn[to]=smn[v]+dist;
                    q.push(make_pair(smn[to],to));
                }
                else if(smn[to]>smn[v]+dist){
                    smn[to]=smn[v]+dist;
                    q.push(make_pair(smn[to],to));
                }
            }
        }
    }
    return smn[0];
}
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 23764 KB Output is correct
2 Correct 11 ms 23764 KB Output is correct
3 Correct 11 ms 23764 KB Output is correct
4 Correct 12 ms 23852 KB Output is correct
5 Correct 12 ms 23892 KB Output is correct
6 Correct 12 ms 23764 KB Output is correct
7 Correct 13 ms 23892 KB Output is correct
8 Correct 12 ms 23892 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 23764 KB Output is correct
2 Correct 11 ms 23764 KB Output is correct
3 Correct 11 ms 23764 KB Output is correct
4 Correct 12 ms 23852 KB Output is correct
5 Correct 12 ms 23892 KB Output is correct
6 Correct 12 ms 23764 KB Output is correct
7 Correct 13 ms 23892 KB Output is correct
8 Correct 12 ms 23892 KB Output is correct
9 Correct 14 ms 24092 KB Output is correct
10 Correct 11 ms 23764 KB Output is correct
11 Correct 14 ms 23892 KB Output is correct
12 Correct 14 ms 24448 KB Output is correct
13 Correct 13 ms 24500 KB Output is correct
14 Correct 12 ms 23848 KB Output is correct
15 Correct 13 ms 23920 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 23764 KB Output is correct
2 Correct 11 ms 23764 KB Output is correct
3 Correct 11 ms 23764 KB Output is correct
4 Correct 12 ms 23852 KB Output is correct
5 Correct 12 ms 23892 KB Output is correct
6 Correct 12 ms 23764 KB Output is correct
7 Correct 13 ms 23892 KB Output is correct
8 Correct 12 ms 23892 KB Output is correct
9 Correct 14 ms 24092 KB Output is correct
10 Correct 11 ms 23764 KB Output is correct
11 Correct 14 ms 23892 KB Output is correct
12 Correct 14 ms 24448 KB Output is correct
13 Correct 13 ms 24500 KB Output is correct
14 Correct 12 ms 23848 KB Output is correct
15 Correct 13 ms 23920 KB Output is correct
16 Correct 338 ms 89936 KB Output is correct
17 Correct 83 ms 37696 KB Output is correct
18 Correct 98 ms 39936 KB Output is correct
19 Correct 416 ms 98164 KB Output is correct
20 Correct 246 ms 76320 KB Output is correct
21 Correct 46 ms 30040 KB Output is correct
22 Incorrect 253 ms 71520 KB Output isn't correct
23 Halted 0 ms 0 KB -