Submission #335082

#TimeUsernameProblemLanguageResultExecution timeMemory
335082daniel920712Rail (IOI14_rail)C++14
8 / 100
282 ms620 KiB
#include "rail.h"
#include <stdio.h>
#include <stdlib.h>
#include <queue>
#include <utility>
#include <stack>
using namespace std;
stack < pair < pair < int , int > , pair < int , int > > > all;

bool have[5005];
int dis[5005];
void findLocation(int N, int first, int location[], int stype[])
{
    int x,y,z,i,j,t,w;
    location[0]=first;
    stype[0]=1;
    all.push(make_pair(make_pair(0,0),make_pair(0,-1)));
    for(i=0;i<N;i++) dis[i]=2e9;

    while(!all.empty())
    {
        y=all.top().first.first;
        x=all.top().second.first;
        z=all.top().second.second;
        w=all.top().first.second;
        all.pop();
        if(have[x]) continue;
        have[x]=1;

        if(z!=-1)
        {
            if(stype[z]==1)
            {
                stype[x]=2;
                location[x]=location[z]+w;
            }
            else
            {
                stype[x]=1;
                location[x]=location[z]-w;
            }
        }
        for(auto i=0;i<N;i++)
        {
            if(have[i]) continue;
            t=getDistance(x,i);
            if(y+t<=dis[i])

            {
                dis[i]=y+t;
                all.push(make_pair(make_pair(y+t,t),make_pair(i,x)));
            }
        }

    }

}

Compilation message (stderr)

rail.cpp: In function 'void findLocation(int, int, int*, int*)':
rail.cpp:14:17: warning: unused variable 'j' [-Wunused-variable]
   14 |     int x,y,z,i,j,t,w;
      |                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...