Submission #1295969

#TimeUsernameProblemLanguageResultExecution timeMemory
1295969hssaan_arifCrocodile's Underground City (IOI11_crocodile)C++20
100 / 100
1430 ms125292 KiB
// #include "crocodile.h"
// #include <bits/stdc++.h>
#include<iostream>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include <chrono>
using namespace std;

#define endl "\n"
#define pb push_back
// #define int long long
#define ll long long
#define fi first
#define se second

const int N = 1e6 + 5, M = 1e9 + 7, LG = 20;

int n , A[N] ,m ,k, u , v , l , R[N][2] , L[N] , P[N];
vector<pair<int,int>> lis[N];


int travel_plan(int n, int m, int R[][2], int L[], int k, int P[])
{
    int fin = 0;
    ll vi[n] = {} , Dis[N] = {};
    // map<pair<ll,ll> , ll> mp , cn;
    for (int i=0 ; i<n ; i++){
        Dis[i] = 1e18;
    }

    clock_t st = clock(), en;
    for (int i=0 ; i<m ; i++){
        int u = R[i][0] , v = R[i][1];
        lis[u].pb({v,L[i]});
        lis[v].pb({u,L[i]});
        // mp[{u,v}] = mp[{v,u}] = L[i];

        en = clock();
        long double k = (en - st) / double(CLOCKS_PER_SEC);
        if (k >= 1.9)
            cout<<1 / 0;
    }
    set<vector<ll>> pq;
    
    for (int i=0 ; i<k ; i++){
        Dis[P[i]] = 0;
        pq.insert({0 , P[i],P[i]});
        // cn[P[i]] = 2;
        vi[P[i]] = 1;
        

    }
    en = clock();
    long double k1 = (en - st) / double(CLOCKS_PER_SEC);
    if (k1 >= 1.5)
        cout<<1 / 0;
    while(pq.size() && Dis[0] == 1e18){
        int v = (*pq.begin())[1] , sr = (*pq.begin())[0] ; pq.erase((*pq.begin()));
        // fin++;
        
        
        
        if (vi[v] != 1){
            vi[v]++;
            continue;
        }else{
            Dis[v] = sr;
            vi[v]++;
            for (auto u : lis[v]){
                if (vi[u.fi]>=2 || Dis[u.fi]!=1e18) continue;
                // cn[{Dis[v] + mp[{v,u}] , u}]++;
                pq.insert({(Dis[v] + u.se) , u.fi , v});
            }
            
        }
    }
    // for (int i=0 ; i<n ; i++){
    //     cout << Dis[i] << ' ';
    // }
    // cout << Dis[0] << endl;
    return Dis[0];
}

// int main(){
//     cin >> n >> m >> k;
//     for (int i=0 ; i<m ; i++){
//         cin >> u >> v >> l;
//         R[i][0] = u;
//         R[i][1] = v;
//         L[i] = l;
//     }
//     for (int i=0 ; i<k ; i++){
//         cin >> l;
//         P[i] = l;
//     }

//     cout << travel_plan(n , m , R , L , k , P);
// }

Compilation message (stderr)

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:43:21: warning: division by zero [-Wdiv-by-zero]
   43 |             cout<<1 / 0;
      |                   ~~^~~
crocodile.cpp:58:17: warning: division by zero [-Wdiv-by-zero]
   58 |         cout<<1 / 0;
      |               ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...