Submission #882251

#TimeUsernameProblemLanguageResultExecution timeMemory
882251kokoueEvacuation plan (IZhO18_plan)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;
int n,m,k,q;
bool is_npp[100000];
vector<pair<int,int>> edges[100000];
vector<int> sp(100000,INT_MAX);
int furthest[50000][50000];
void dijkstra(int start)
{
    priority_queue<pair<int,int>> q;
    vector<int> dist(n+1,INT_MAX);
    q.push({0,start});
    dist[start]=0;
    sp[start]=0;
    while(!q.empty())
    {
        int curr=q.top().second;
        int currDist=-q.top().first;
        q.pop();
        if(dist[curr]<currDist) continue;
        for(auto edge:edges[curr])
        {
            int next=edge.first;
            int weight=edge.second;
            if(dist[curr]+weight<dist[next])
            {
                dist[next]=dist[curr]+weight;
                sp[next]=min(sp[next],dist[next]);
                q.push({-dist[next],next});
            }
        }
    }
}
int dijkstra(int start,int finish)
{
    priority_queue<pair<int,int>> q;
    vector<int> away(n+1,0);
    q.push({sp[start],start});
    away[start]=sp[start];
    while(!q.empty())
    {
        int curr=q.top().second;
        int currAway=q.top().first;
        q.pop();
        if(away[curr]>currAway) continue;
        for(auto edge:edges[curr])
        {
            int next=edge.first;
            int len=sp[next];
            if(away[next]<min(len,away[curr]))
            {
                away[next]=min(len,away[curr]);
                q.push({away[next],next});
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        if(away[i]!=0) {furthest[start][i]=away[i];furthest[i][start]=away[i];}
    }
    return away[finish];
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>n>>m;
    int ai,bi,wi;
    for(int i=0;i<m;i++)
    {
        cin>>ai>>bi>>wi;
        edges[ai].push_back({bi,wi});
        edges[bi].push_back({ai,wi});
    }
    cin>>k;
    for(int i=0;i<k;i++)
    {
        int npp;
        cin>>npp;
        is_npp[npp]=true;
        dijkstra(npp);
    }
    cin>>q;
    int si,ti;
    for(int i=0;i<q;i++)
    {
        cin>>si>>ti;
        if(is_npp[si]==true || is_npp[ti]==true) {printf("0\n");continue;}
        if(furthest[si][ti]!=0) {printf("%d\n",furthest[si][ti]);continue;}
        printf("%d\n",dijkstra(si,ti));
    }
}

Compilation message (stderr)

/tmp/ccZ29cx6.o: in function `__tcf_0':
plan.cpp:(.text+0x189): relocation truncated to fit: R_X86_64_PC32 against symbol `edges' defined in .bss section in /tmp/ccZ29cx6.o
/tmp/ccZ29cx6.o: in function `dijkstra(int, int)':
plan.cpp:(.text+0x205): relocation truncated to fit: R_X86_64_PC32 against symbol `n' defined in .bss section in /tmp/ccZ29cx6.o
plan.cpp:(.text+0x2aa): relocation truncated to fit: R_X86_64_PC32 against symbol `sp' defined in .bss section in /tmp/ccZ29cx6.o
plan.cpp:(.text+0x2f9): relocation truncated to fit: R_X86_64_PC32 against symbol `sp' defined in .bss section in /tmp/ccZ29cx6.o
plan.cpp:(.text+0x369): relocation truncated to fit: R_X86_64_PC32 against symbol `edges' defined in .bss section in /tmp/ccZ29cx6.o
plan.cpp:(.text+0x378): relocation truncated to fit: R_X86_64_PC32 against symbol `sp' defined in .bss section in /tmp/ccZ29cx6.o
plan.cpp:(.text+0x452): relocation truncated to fit: R_X86_64_PC32 against symbol `n' defined in .bss section in /tmp/ccZ29cx6.o
plan.cpp:(.text+0x536): relocation truncated to fit: R_X86_64_PC32 against symbol `sp' defined in .bss section in /tmp/ccZ29cx6.o
/tmp/ccZ29cx6.o: in function `dijkstra(int)':
plan.cpp:(.text+0x5de): relocation truncated to fit: R_X86_64_PC32 against symbol `n' defined in .bss section in /tmp/ccZ29cx6.o
plan.cpp:(.text+0x6ae): relocation truncated to fit: R_X86_64_PC32 against symbol `edges' defined in .bss section in /tmp/ccZ29cx6.o
plan.cpp:(.text+0x6db): additional relocation overflows omitted from the output
/usr/bin/ld: failed to convert GOTPCREL relocation; relink with --no-relax
collect2: error: ld returned 1 exit status