답안 #1086091

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1086091 2024-09-09T13:41:21 Z MrPavlito 악어의 지하 도시 (IOI11_crocodile) C++17
89 / 100
2000 ms 133992 KB
#include "crocodile.h"
#include <bits/stdc++.h>
//#define int long long
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define sc second
#define endl "\n"
#define pii pair<int,int>


using namespace std;

const int MAXN = 1e5+5;
const int mod7 = 1e9+7;
const long long inf = 1e18;
int n;

vector<long long> dist(MAXN, inf);
int cnt[MAXN];
vector<vector<pii>> graf(MAXN);
multiset<pii> pq;

void dikstra()
{
    while(!pq.empty())
    {
        auto it = pq.begin();
        int u = it-> sc;
        int d = it-> fi;
        pq.erase(pq.find({d,u}));
        if(dist[u] != inf)continue;
        cnt[u]++;
        if(cnt[u] == 2)
        {
            dist[u] = d;
            for(auto x: graf[u])
            {
                pq.insert({d+x.sc, x.fi});
            }
        }
    }
}


int travel_plan(int N, int M, int R[][2], int L[], int K, int P[])
{
    n = N;
    for(int i=0; i<M; i++)
    {
        graf[R[i][0]].pb({R[i][1], L[i]});
        graf[R[i][1]].pb({R[i][0], L[i]});
    }
    for(int i = 0; i<K; i++)
    {
        for(auto x: graf[P[i]])
        {
            pq.insert(mp(x.sc, x.fi));
        }
        dist[P[i]] = 0;
    }
    //for(auto x: pq)cout << x.fi << " " << x.sc << endl;
    dikstra();
    return dist[0];
}
/*
5 7 2
0 2 4
0 3 3
3 2 2
2 1 10
0 1 100
0 4 7
3 4 9
1 3
14
*/
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3420 KB Output is correct
2 Correct 1 ms 3420 KB Output is correct
3 Correct 2 ms 3420 KB Output is correct
4 Correct 2 ms 3676 KB Output is correct
5 Correct 2 ms 3676 KB Output is correct
6 Correct 2 ms 3676 KB Output is correct
7 Correct 2 ms 3568 KB Output is correct
8 Correct 2 ms 3676 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3420 KB Output is correct
2 Correct 1 ms 3420 KB Output is correct
3 Correct 2 ms 3420 KB Output is correct
4 Correct 2 ms 3676 KB Output is correct
5 Correct 2 ms 3676 KB Output is correct
6 Correct 2 ms 3676 KB Output is correct
7 Correct 2 ms 3568 KB Output is correct
8 Correct 2 ms 3676 KB Output is correct
9 Correct 4 ms 4188 KB Output is correct
10 Correct 1 ms 3608 KB Output is correct
11 Correct 4 ms 3676 KB Output is correct
12 Correct 12 ms 4852 KB Output is correct
13 Correct 6 ms 4804 KB Output is correct
14 Correct 2 ms 3420 KB Output is correct
15 Correct 2 ms 3676 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3420 KB Output is correct
2 Correct 1 ms 3420 KB Output is correct
3 Correct 2 ms 3420 KB Output is correct
4 Correct 2 ms 3676 KB Output is correct
5 Correct 2 ms 3676 KB Output is correct
6 Correct 2 ms 3676 KB Output is correct
7 Correct 2 ms 3568 KB Output is correct
8 Correct 2 ms 3676 KB Output is correct
9 Correct 4 ms 4188 KB Output is correct
10 Correct 1 ms 3608 KB Output is correct
11 Correct 4 ms 3676 KB Output is correct
12 Correct 12 ms 4852 KB Output is correct
13 Correct 6 ms 4804 KB Output is correct
14 Correct 2 ms 3420 KB Output is correct
15 Correct 2 ms 3676 KB Output is correct
16 Execution timed out 2071 ms 133992 KB Time limit exceeded
17 Halted 0 ms 0 KB -