Submission #1090692

# Submission time Handle Problem Language Result Execution time Memory
1090692 2024-09-18T15:29:58 Z AlgorithmWarrior Crocodile's Underground City (IOI11_crocodile) C++14
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>
#define MAX 100005

using namespace std;

int N,M,K;
struct edge
{
    int nod;
    long long len;
};
class cmp
{
public:
    bool operator()(edge a,edge b)
    {
        return a.len>b.len;
    }
};
vector<edge>G[MAX];
priority_queue<edge,vector<edge>,cmp>pq;
long long dist1[MAX],dist2[MAX];

void read()
{
    cin>>N>>M>>K;
    while(M--)
    {
        int nod1,nod2,len;
        cin>>nod1>>nod2>>len;
        ++nod1;
        ++nod2;
        G[nod1].push_back({nod2,len});
        G[nod2].push_back({nod1,len});
    }
    int i;
    for(i=1;i<=N;++i)
        dist1[i]=dist2[i]=1e18;
    while(K--)
    {
        int nod;
        cin>>nod;
        ++nod;
        dist1[nod]=dist2[nod]=0;
        pq.push({nod,0});
    }
}

void djikstra()
{
    while(!pq.empty())
    {
        int nod=pq.top().nod;
        long long len=pq.top().len;
        pq.pop();
        if(len>dist2[nod])
            continue;
        for(auto per : G[nod])
        {
            int nod2=per.nod;
            int len2=per.len;
            if(dist2[nod2]>len+len2)
            {
                if(dist1[nod2]>len+len2)
                {
                    dist2[nod2]=dist1[nod2];
                    dist1[nod2]=len+len2;
                }
                else
                    dist2[nod2]=len+len2;
                pq.push({nod2,dist2[nod2]});
            }
        }
    }
}

void write()
{
    cout<<dist2[1];
}

int main()
{
    read();
    djikstra();
    write();
    return 0;
}

Compilation message

/usr/bin/ld: /tmp/ccMPx1tA.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccb45njx.o:crocodile.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccMPx1tA.o: in function `main':
grader.cpp:(.text.startup+0x36): undefined reference to `travel_plan(int, int, int (*) [2], int*, int, int*)'
collect2: error: ld returned 1 exit status