Submission #2483091
Source Code Expand
import std.stdio, std.array, std.string, std.conv, std.algorithm; import std.typecons, std.range, std.random, std.math, std.container; import std.numeric, std.bigint, core.bitop, std.bitmanip; void main() { immutable long INF = 1L << 59; auto s = readln.split.map!(to!int); auto N = s[0]; auto M = s[1]; auto S = s[2]; auto T = s[3]; auto L = new int[](M); auto A = new int[][](M); auto W = new long[][](M); auto G = new Tuple!(int, long, int, long)[][](N); foreach (i; 0..M) { L[i] = readln.chomp.to!int; A[i] = readln.split.map!(to!int).array; W[i] = readln.split.map!(to!long).array; long acm1 = W[i].sum; long acm2 = 0; foreach (j; 0..L[i]-1) { acm2 += W[i][j]; G[A[i][j]] ~= tuple(A[i][j+1], W[i][j], A[i].back, acm1); G[A[i][j+1]] ~= tuple(A[i][j], W[i][j], A[i].front, acm2); acm1 -= W[i][j]; } } auto shortest = new long[](N); shortest.fill(INF); auto pq = new BinaryHeap!(Array!(Tuple!(int, long)), "a[1] > b[1]")(); auto dist = new long[](N); pq.insert(tuple(T, 0L)); while (!pq.empty) { auto t = pq.front; auto n = t[0]; auto d = t[1]; pq.removeFront; if (shortest[n] <= d) continue; shortest[n] = d; foreach (to; G[n]) { auto nn = to[0]; auto nd = d + to[1]; if (shortest[nn] <= nd) continue; pq.insert(tuple(nn, nd)); } } long hi = 10L^^15; long lo = 0; while (hi - lo > 1) { long mid = (hi + lo) / 2; dist.fill(INF); pq.clear(); pq.insert(tuple(S, 0L)); bool ok = false; while (!pq.empty) { auto t = pq.front; auto n = t[0]; auto d = t[1]; pq.removeFront; if (n == T) { ok = true; break; } if (dist[n] <= d) continue; dist[n] = d; foreach (to; G[n]) { auto nn = to[0]; auto nd = d + to[1]; auto zzz = to[2]; auto zzz_d = d + to[3]; if (zzz_d + shortest[zzz] > mid) continue; if (dist[nn] <= nd) continue; if (nd > mid) continue; pq.insert(tuple(nn, nd)); } } if (ok) hi = mid; else lo = mid; } hi.writeln; }
Submission Info
Submission Time | |
---|---|
Task | C - メンテナンス明け |
User | nebukuro09 |
Language | D (LDC 0.17.0) |
Score | 100 |
Code Size | 2601 Byte |
Status | AC |
Exec Time | 985 ms |
Memory | 16252 KB |
Judge Result
Set Name | Subtask1 | Subtask2 | ||||
---|---|---|---|---|---|---|
Score / Max Score | 50 / 50 | 50 / 50 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Subtask1 | small/00_sample00, small/00_sample01, small/00_sample02, small/10_small-0000, small/10_small-0001, small/10_small-0002, small/10_small-0003, small/10_small-0004, small/10_small-0005, small/10_small-0006, small/10_small-0007, small/10_small-0008, small/10_small-0009, small/10_small-0010, small/10_small-0011, small/10_small-0012, small/10_small-0013, small/10_small-0014, small/10_small-0015, small/10_small-0016, small/10_small-0017, small/10_small-0018, small/10_small-0019, small/30_max_small, small/40_simple_0000, small/40_simple_0001, small/40_simple_0002, small/40_simple_0003, small/40_simple_0004, small/40_simple_0005, small/40_simple_0006, small/40_simple_0007, small/40_simple_0008, small/40_simple_0009, small/40_simple_0010, small/40_simple_0011, small/40_simple_0012, small/40_simple_0013, small/40_simple_0014, small/40_simple_0015, small/40_simple_0016, small/40_simple_0017, small/40_simple_0018, small/40_simple_0019, small/90_dijkstra_killer_00, small/90_dijkstra_killer_01, small/91_tayama_killer_00, small/91_tayama_killer_01, small/91_tayama_killer_02, small/91_tayama_killer_03, small/91_tayama_killer_04, small/91_tayama_killer_05 |
Subtask2 | large/20_large-00, large/20_large-01, large/20_large-02, large/20_large-03, large/20_large-04, large/31_max_large |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
large/20_large-00 | AC | 145 ms | 14656 KB |
large/20_large-01 | AC | 346 ms | 13436 KB |
large/20_large-02 | AC | 174 ms | 15100 KB |
large/20_large-03 | AC | 882 ms | 16252 KB |
large/20_large-04 | AC | 985 ms | 12924 KB |
large/31_max_large | AC | 16 ms | 9452 KB |
small/00_sample00 | AC | 1 ms | 256 KB |
small/00_sample01 | AC | 1 ms | 256 KB |
small/00_sample02 | AC | 1 ms | 256 KB |
small/10_small-0000 | AC | 5 ms | 380 KB |
small/10_small-0001 | AC | 2 ms | 380 KB |
small/10_small-0002 | AC | 5 ms | 380 KB |
small/10_small-0003 | AC | 4 ms | 380 KB |
small/10_small-0004 | AC | 4 ms | 380 KB |
small/10_small-0005 | AC | 4 ms | 380 KB |
small/10_small-0006 | AC | 6 ms | 380 KB |
small/10_small-0007 | AC | 6 ms | 380 KB |
small/10_small-0008 | AC | 2 ms | 380 KB |
small/10_small-0009 | AC | 3 ms | 380 KB |
small/10_small-0010 | AC | 5 ms | 380 KB |
small/10_small-0011 | AC | 6 ms | 380 KB |
small/10_small-0012 | AC | 6 ms | 380 KB |
small/10_small-0013 | AC | 4 ms | 380 KB |
small/10_small-0014 | AC | 3 ms | 380 KB |
small/10_small-0015 | AC | 4 ms | 380 KB |
small/10_small-0016 | AC | 2 ms | 380 KB |
small/10_small-0017 | AC | 6 ms | 380 KB |
small/10_small-0018 | AC | 3 ms | 380 KB |
small/10_small-0019 | AC | 2 ms | 380 KB |
small/30_max_small | AC | 1 ms | 380 KB |
small/40_simple_0000 | AC | 1 ms | 256 KB |
small/40_simple_0001 | AC | 1 ms | 256 KB |
small/40_simple_0002 | AC | 1 ms | 256 KB |
small/40_simple_0003 | AC | 1 ms | 256 KB |
small/40_simple_0004 | AC | 1 ms | 256 KB |
small/40_simple_0005 | AC | 1 ms | 256 KB |
small/40_simple_0006 | AC | 1 ms | 256 KB |
small/40_simple_0007 | AC | 1 ms | 256 KB |
small/40_simple_0008 | AC | 1 ms | 256 KB |
small/40_simple_0009 | AC | 1 ms | 256 KB |
small/40_simple_0010 | AC | 1 ms | 256 KB |
small/40_simple_0011 | AC | 1 ms | 256 KB |
small/40_simple_0012 | AC | 1 ms | 256 KB |
small/40_simple_0013 | AC | 1 ms | 256 KB |
small/40_simple_0014 | AC | 1 ms | 256 KB |
small/40_simple_0015 | AC | 1 ms | 256 KB |
small/40_simple_0016 | AC | 1 ms | 256 KB |
small/40_simple_0017 | AC | 1 ms | 256 KB |
small/40_simple_0018 | AC | 1 ms | 256 KB |
small/40_simple_0019 | AC | 1 ms | 256 KB |
small/90_dijkstra_killer_00 | AC | 1 ms | 256 KB |
small/90_dijkstra_killer_01 | AC | 1 ms | 256 KB |
small/91_tayama_killer_00 | AC | 1 ms | 256 KB |
small/91_tayama_killer_01 | AC | 1 ms | 256 KB |
small/91_tayama_killer_02 | AC | 1 ms | 256 KB |
small/91_tayama_killer_03 | AC | 1 ms | 256 KB |
small/91_tayama_killer_04 | AC | 1 ms | 256 KB |
small/91_tayama_killer_05 | AC | 1 ms | 256 KB |