Submission #1027035


Source Code Expand

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
using namespace std;

#define INF (1LL<<60)
#define MAX_B 260000
typedef pair<int, int> P;
typedef pair<long long, P> P2;

int N, M, S, D;
vector<P2> edges[253];
long long d[253][MAX_B+1];

int main() {
  cin >> N >> M >> S >> D;
  if (N >= 253) return 1;
  for (int k=0; k<M; k++) {
    int L;
    cin >> L;
    int s[L], w[L];
    for (int i=0; i<L; i++) cin >> s[i];
    for (int i=0; i<L-1; i++) cin >> w[i];

    int t = 0, sum = 0;
    for (int i=0; i<L-1; i++) sum += w[i];

    for (int i=0, g=sum; i<L; i++) {
      int l = 0;
      for (int j=i+1, g2=g; j<L; j++) {
        g2 -= w[j-1];
        l += w[j-1];
        edges[s[i]].push_back(P2(s[j], P(l, g2)));
      }
      g -= w[i];
    }
    for (int i=L-1, g=sum; i>=0; i--) {
      int l = 0;
      for (int j=i-1, g2=g; j>=0; j--) {
        g2 -= w[j];
        l += w[j];
        edges[s[i]].push_back(P2(s[j], P(l, g2)));
      }
      g -= w[i-1];
    }
  }

  for (int i=0; i<N; i++) {
    for (int j=0; j<MAX_B; j++) {
      d[i][j] = INF;
    }
  }

  priority_queue< P2, vector<P2>, greater<P2> > q;
  d[S][0] = 0;
  q.push(P2(0, P(S, 0)));
  long long ans = INF;

  while (!q.empty()) {
    int r = q.top().first,
        s = q.top().second.first, b = q.top().second.second;
    q.pop();
    if (d[s][b]+b > r) continue;

    for (P2 p : edges[s]) {
      int t = p.first;
      int r1 = p.second.first, r2 = p.second.second;
      int w = max(b, r2*2);
      if (d[t][w] > d[s][b] + r1) {
        d[t][w] = d[s][b] + r1;
        q.push(P2(d[t][w]+w, P(t, w)));

        if (t == D) ans = min(ans, d[D][w] + w);
      }
    }
  }
  cout << ans << "\n";
  return 0;
}

Submission Info

Submission Time
Task C - メンテナンス明け
User funcsr
Language C++11 (GCC 4.9.2)
Score 0
Code Size 1815 Byte
Status MLE
Exec Time 1174 ms
Memory 515736 KB

Judge Result

Set Name Subtask1 Subtask2
Score / Max Score 0 / 50 0 / 50
Status
AC × 31
MLE × 21
RE × 6
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 RE 16 ms 920 KB
large/20_large-01 RE 16 ms 796 KB
large/20_large-02 RE 16 ms 800 KB
large/20_large-03 RE 18 ms 800 KB
large/20_large-04 RE 18 ms 924 KB
large/31_max_large RE 18 ms 924 KB
small/00_sample00 AC 31 ms 10912 KB
small/00_sample01 AC 31 ms 11036 KB
small/00_sample02 AC 28 ms 8856 KB
small/10_small-0000 MLE 659 ms 514080 KB
small/10_small-0001 MLE 917 ms 505368 KB
small/10_small-0002 MLE 1026 ms 515736 KB
small/10_small-0003 MLE 931 ms 515608 KB
small/10_small-0004 MLE 772 ms 514288 KB
small/10_small-0005 MLE 969 ms 515696 KB
small/10_small-0006 MLE 688 ms 514084 KB
small/10_small-0007 MLE 1000 ms 515604 KB
small/10_small-0008 MLE 715 ms 514220 KB
small/10_small-0009 MLE 640 ms 514072 KB
small/10_small-0010 MLE 1174 ms 511520 KB
small/10_small-0011 MLE 700 ms 514032 KB
small/10_small-0012 MLE 692 ms 514080 KB
small/10_small-0013 MLE 754 ms 514208 KB
small/10_small-0014 MLE 683 ms 514084 KB
small/10_small-0015 MLE 718 ms 497940 KB
small/10_small-0016 MLE 1006 ms 487316 KB
small/10_small-0017 MLE 655 ms 514024 KB
small/10_small-0018 MLE 795 ms 515348 KB
small/10_small-0019 MLE 1141 ms 507624 KB
small/30_max_small MLE 687 ms 514788 KB
small/40_simple_0000 AC 30 ms 11032 KB
small/40_simple_0001 AC 30 ms 11032 KB
small/40_simple_0002 AC 30 ms 10908 KB
small/40_simple_0003 AC 28 ms 10912 KB
small/40_simple_0004 AC 30 ms 10864 KB
small/40_simple_0005 AC 30 ms 11028 KB
small/40_simple_0006 AC 28 ms 10916 KB
small/40_simple_0007 AC 29 ms 10916 KB
small/40_simple_0008 AC 30 ms 10912 KB
small/40_simple_0009 AC 29 ms 10872 KB
small/40_simple_0010 AC 29 ms 10868 KB
small/40_simple_0011 AC 29 ms 11028 KB
small/40_simple_0012 AC 30 ms 10912 KB
small/40_simple_0013 AC 30 ms 10912 KB
small/40_simple_0014 AC 29 ms 10916 KB
small/40_simple_0015 AC 31 ms 10916 KB
small/40_simple_0016 AC 29 ms 10904 KB
small/40_simple_0017 AC 29 ms 10868 KB
small/40_simple_0018 AC 28 ms 10908 KB
small/40_simple_0019 AC 28 ms 10912 KB
small/90_dijkstra_killer_00 AC 44 ms 23072 KB
small/90_dijkstra_killer_01 AC 43 ms 23156 KB
small/91_tayama_killer_00 AC 41 ms 18972 KB
small/91_tayama_killer_01 AC 36 ms 17056 KB
small/91_tayama_killer_02 AC 42 ms 21020 KB
small/91_tayama_killer_03 AC 46 ms 25120 KB
small/91_tayama_killer_04 AC 32 ms 12912 KB
small/91_tayama_killer_05 AC 42 ms 21024 KB