Submission #2861172


Source Code Expand

#include <bits/stdc++.h>
#define N 100005

using namespace std;
typedef pair<int,int> ii;
struct data
{
    int dist,u,company;
};
map<int,int> d[N];
vector<vector<ii>> AdjList(N);

void dijistra()
{
    d[1][0] = 0;
    deque<data> q;
    q.push_back(data{0,1,0});

    while(!q.empty())
    {
        data f = q.front();
        q.pop_front();

        int dist = f.dist,u = f.u,c = f.company;
        if(dist!=d[u][c])
            continue;

        if(!d[u].count(0)||d[u].count(0)&&d[u][0]>dist)
        {
            d[u][0] = dist;
            q.push_front(data{dist,u,0});
        }

        if(c)
        {
            int pos = lower_bound(AdjList[u].begin(),AdjList[u].end(),ii(c,0)) - AdjList[u].begin() ;
            while(pos<AdjList[u].size()&&AdjList[u][pos].first==c)
            {
                int v = AdjList[u][pos].second;
                if(!d[v].count(c)||d[v].count(c)&&d[v][c]>dist)
                {
                    d[v][c] = dist;
                    q.push_front(data{dist,v,c});
                }
                pos++;
            }
        }
        else
        {
            for(auto i:AdjList[u])
            {
                int v = i.second,company = i.first;
                if(!d[v].count(company)||d[v].count(company)&&d[v][company]>dist+1)
                {
                    d[v][company] = dist+1;
                    q.push_back(data{dist+1,v,company});
                }
            }
        }
    }
}

signed main()
{
    int n,m;
    cin>>n>>m;

    while(m--)
    {
        int u,v,c;
        cin>>u>>v>>c;
        AdjList[u].push_back(ii(c,v));
        AdjList[v].push_back(ii(c,u));
    }

    for(int i=1;i<=n;i++)
        sort(AdjList[i].begin(),AdjList[i].end());

    dijistra();

    if(!d[n].count(0))
        cout<<-1;
    else
        cout<<d[n][0];
}

Submission Info

Submission Time
Task E - Snuke's Subway Trip
User vjudge5
Language C++14 (GCC 5.4.1)
Score 600
Code Size 1820 Byte
Status AC
Exec Time 495 ms
Memory 37376 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status AC
AC × 59
Set Name Test Cases
Sample
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, sample_01.txt, sample_02.txt, sample_03.txt, w1.txt, w10.txt, w11.txt, w12.txt, w13.txt, w14.txt, w15.txt, w16.txt, w17.txt, w18.txt, w2.txt, w3.txt, w4.txt, w5.txt, w6.txt, w7.txt, w8.txt, w9.txt
Case Name Status Exec Time Memory
01.txt AC 5 ms 7296 KB
02.txt AC 370 ms 18176 KB
03.txt AC 427 ms 36992 KB
04.txt AC 209 ms 13568 KB
05.txt AC 345 ms 31104 KB
06.txt AC 128 ms 23808 KB
07.txt AC 156 ms 24576 KB
08.txt AC 414 ms 37376 KB
09.txt AC 170 ms 26368 KB
10.txt AC 167 ms 26368 KB
11.txt AC 226 ms 25084 KB
12.txt AC 137 ms 11256 KB
13.txt AC 183 ms 16376 KB
14.txt AC 239 ms 24576 KB
15.txt AC 187 ms 20604 KB
16.txt AC 210 ms 23168 KB
17.txt AC 236 ms 25592 KB
18.txt AC 159 ms 12924 KB
19.txt AC 199 ms 22772 KB
20.txt AC 258 ms 27136 KB
21.txt AC 495 ms 35452 KB
22.txt AC 288 ms 27128 KB
23.txt AC 336 ms 29568 KB
24.txt AC 210 ms 25724 KB
25.txt AC 149 ms 11256 KB
26.txt AC 173 ms 16632 KB
27.txt AC 264 ms 27264 KB
28.txt AC 235 ms 25852 KB
29.txt AC 257 ms 26240 KB
30.txt AC 204 ms 24696 KB
31.txt AC 176 ms 16892 KB
32.txt AC 201 ms 22516 KB
33.txt AC 254 ms 27136 KB
34.txt AC 201 ms 21372 KB
35.txt AC 132 ms 11256 KB
36.txt AC 171 ms 13304 KB
37.txt AC 215 ms 22016 KB
38.txt AC 202 ms 21372 KB
sample_01.txt AC 4 ms 7296 KB
sample_02.txt AC 4 ms 7296 KB
sample_03.txt AC 4 ms 7296 KB
w1.txt AC 224 ms 22884 KB
w10.txt AC 222 ms 16768 KB
w11.txt AC 152 ms 11096 KB
w12.txt AC 171 ms 11904 KB
w13.txt AC 259 ms 19584 KB
w14.txt AC 244 ms 24064 KB
w15.txt AC 130 ms 11224 KB
w16.txt AC 141 ms 11264 KB
w17.txt AC 160 ms 11904 KB
w18.txt AC 196 ms 16896 KB
w2.txt AC 234 ms 22876 KB
w3.txt AC 247 ms 27252 KB
w4.txt AC 217 ms 22644 KB
w5.txt AC 442 ms 37364 KB
w6.txt AC 284 ms 31604 KB
w7.txt AC 395 ms 30236 KB
w8.txt AC 386 ms 29696 KB
w9.txt AC 358 ms 30464 KB