Submission #1552039


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define int long long

typedef long long ll;
typedef unsigned long long ull;
typedef unsigned __int128 HASH;
typedef pair<int,int> pii;
typedef pair<ll, ll> pll;
typedef pair<ull, ull> pullull;
typedef pair<ll,int> plli;
typedef pair<double, int> pdbi;
typedef pair<int,pii> pipii;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<vi> vvi;
typedef vector<vvi> vvvi;
typedef vector<pii> vpii;

#define rep(i,n) for (int i=0;i<(n);i++)
#define rep2(i,a,b) for (int i=(a);i<(b);i++)
#define rrep(i,n) for (int i=(n);i>0;i--)
#define rrep2(i,a,b) for (int i=(a);i>b;i--)
#define pb push_back
#define fi first
#define se second
#define all(a) (a).begin(),(a).end()

const ll hmod1 = 999999937;
const ll hmod2 = 1000000000 + 9;
const ll INF = 1<<30;
const ll mod = 1000000000 + 7;
const int dx4[4] = {1, 0, -1, 0};
const int dy4[4] = {0, 1, 0, -1};
const int dx8[8] = {1, 1, 1, 0, 0, -1, -1, -1};
const int dy8[8] = {0, 1, -1, 1, -1, 0, 1, -1};
const double pi = 3.141592653589793;

int n, m, s, tar;
struct edge{int to, cost;};
vector<vector<edge>> g(100000+5);
int a[100000 + 5], b[100000 + 5], c[100000 + 5];

vector<ll> dijkstra(int s, int n, vector<vector<edge>>& g){
    priority_queue<plli, vector<plli>, greater<plli>> que;
    vector<ll> d(n, LLONG_MAX / 10); d[s] = 0;
    que.push(plli(0, s));

    while (!que.empty()){
        plli p = que.top();que.pop();
        int fr = p.second;
        if (d[fr] < p.first) continue;
        for (edge e: g[fr]){
            int ti = d[fr];
            int wait = 0;
            if (ti <= c[fr]) wait = c[fr] - ti;
            else {
                ti -= c[fr];
                ti %= (a[fr] + b[fr]);
                if (ti < a[fr]) wait = 0;
                else wait = b[fr] - (ti - a[fr]);
            }
            if (d[e.to] > d[fr] + wait + e.cost){
                d[e.to] = d[fr] + wait + e.cost;
                que.push(plli(d[e.to], e.to));
            }
        }
    }
    return d;
}

signed main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    cin >> n >> m >> s >> tar;
    s--; tar--;
    rep(i, n) cin >> a[i] >> b[i] >> c[i];
    rep(i, m) {
        int x, y, t;
        cin >> x >> y >> t;
        x--; y--;
        g[x].push_back(edge{y, t});
        g[y].push_back(edge{x, t});
    }
    vector<ll> dist = dijkstra(s, n, g);
    cout << dist[tar] << endl;

}

Submission Info

Submission Time
Task I - 信号待ち
User roto_37
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2485 Byte
Status AC
Exec Time 99 ms
Memory 10880 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 45
Set Name Test Cases
All 00-sample1, 00-sample2, 00-small0, 00-small1, 00-small10, 00-small11, 00-small12, 00-small13, 00-small14, 00-small15, 00-small16, 00-small17, 00-small18, 00-small19, 00-small2, 00-small3, 00-small4, 00-small5, 00-small6, 00-small7, 00-small8, 00-small9, 20-large0, 20-large1, 20-large10, 20-large11, 20-large12, 20-large13, 20-large14, 20-large15, 20-large16, 20-large17, 20-large18, 20-large19, 20-large2, 20-large3, 20-large4, 20-large5, 20-large6, 20-large7, 20-large8, 20-large9, 50-corner00, 50-corner01, 50-corner02
Case Name Status Exec Time Memory
00-sample1 AC 2 ms 2560 KB
00-sample2 AC 2 ms 2560 KB
00-small0 AC 3 ms 2688 KB
00-small1 AC 3 ms 2688 KB
00-small10 AC 7 ms 3456 KB
00-small11 AC 5 ms 3200 KB
00-small12 AC 7 ms 3584 KB
00-small13 AC 7 ms 3456 KB
00-small14 AC 5 ms 3328 KB
00-small15 AC 5 ms 3200 KB
00-small16 AC 5 ms 3328 KB
00-small17 AC 5 ms 3328 KB
00-small18 AC 4 ms 2944 KB
00-small19 AC 6 ms 3328 KB
00-small2 AC 3 ms 2688 KB
00-small3 AC 3 ms 2688 KB
00-small4 AC 3 ms 2688 KB
00-small5 AC 3 ms 2688 KB
00-small6 AC 3 ms 2688 KB
00-small7 AC 3 ms 2688 KB
00-small8 AC 3 ms 2688 KB
00-small9 AC 3 ms 2688 KB
20-large0 AC 94 ms 10880 KB
20-large1 AC 94 ms 10880 KB
20-large10 AC 90 ms 10880 KB
20-large11 AC 96 ms 10880 KB
20-large12 AC 93 ms 10880 KB
20-large13 AC 94 ms 10880 KB
20-large14 AC 97 ms 10880 KB
20-large15 AC 90 ms 10880 KB
20-large16 AC 89 ms 10880 KB
20-large17 AC 99 ms 10880 KB
20-large18 AC 98 ms 10880 KB
20-large19 AC 94 ms 10880 KB
20-large2 AC 94 ms 10880 KB
20-large3 AC 95 ms 10880 KB
20-large4 AC 95 ms 10880 KB
20-large5 AC 90 ms 10880 KB
20-large6 AC 88 ms 10880 KB
20-large7 AC 89 ms 10880 KB
20-large8 AC 91 ms 10880 KB
20-large9 AC 94 ms 10880 KB
50-corner00 AC 66 ms 10368 KB
50-corner01 AC 61 ms 10368 KB
50-corner02 AC 56 ms 10368 KB