Submission #1027028


Source Code Expand

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

#define INF 1145141919
#define MAX_B 260000
typedef pair<int, int> P;
typedef pair<int, P> P2;

int N, M, S, D;
vector<P2> edges[253];
int 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)));
  int 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] > 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], 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 1794 Byte
Status WA
Exec Time 864 ms
Memory 263580 KB

Judge Result

Set Name Subtask1 Subtask2
Score / Max Score 0 / 50 0 / 50
Status
AC × 31
WA × 2
MLE × 19
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 18 ms 928 KB
large/20_large-01 RE 17 ms 800 KB
large/20_large-02 RE 16 ms 800 KB
large/20_large-03 RE 16 ms 920 KB
large/20_large-04 RE 17 ms 928 KB
large/31_max_large RE 18 ms 800 KB
small/00_sample00 AC 25 ms 5792 KB
small/00_sample01 AC 25 ms 5916 KB
small/00_sample02 AC 21 ms 4892 KB
small/10_small-0000 MLE 388 ms 258712 KB
small/10_small-0001 MLE 583 ms 253844 KB
small/10_small-0002 MLE 746 ms 260636 KB
small/10_small-0003 MLE 663 ms 260468 KB
small/10_small-0004 MLE 500 ms 260252 KB
small/10_small-0005 MLE 696 ms 263580 KB
small/10_small-0006 MLE 412 ms 258544 KB
small/10_small-0007 MLE 672 ms 258972 KB
small/10_small-0008 MLE 451 ms 260252 KB
small/10_small-0009 MLE 377 ms 258540 KB
small/10_small-0010 MLE 769 ms 256924 KB
small/10_small-0011 MLE 436 ms 260120 KB
small/10_small-0012 MLE 436 ms 260200 KB
small/10_small-0013 MLE 487 ms 260244 KB
small/10_small-0014 MLE 418 ms 258592 KB
small/10_small-0015 WA 459 ms 252056 KB
small/10_small-0016 WA 757 ms 249496 KB
small/10_small-0017 MLE 385 ms 258540 KB
small/10_small-0018 MLE 514 ms 260332 KB
small/10_small-0019 MLE 864 ms 259592 KB
small/30_max_small MLE 376 ms 258020 KB
small/40_simple_0000 AC 25 ms 5856 KB
small/40_simple_0001 AC 25 ms 5904 KB
small/40_simple_0002 AC 23 ms 5784 KB
small/40_simple_0003 AC 25 ms 5916 KB
small/40_simple_0004 AC 30 ms 5788 KB
small/40_simple_0005 AC 25 ms 5792 KB
small/40_simple_0006 AC 24 ms 5880 KB
small/40_simple_0007 AC 25 ms 5916 KB
small/40_simple_0008 AC 24 ms 5912 KB
small/40_simple_0009 AC 25 ms 5792 KB
small/40_simple_0010 AC 27 ms 5792 KB
small/40_simple_0011 AC 25 ms 5920 KB
small/40_simple_0012 AC 26 ms 5792 KB
small/40_simple_0013 AC 26 ms 5916 KB
small/40_simple_0014 AC 26 ms 5792 KB
small/40_simple_0015 AC 26 ms 5796 KB
small/40_simple_0016 AC 25 ms 5916 KB
small/40_simple_0017 AC 24 ms 5788 KB
small/40_simple_0018 AC 26 ms 5796 KB
small/40_simple_0019 AC 25 ms 5916 KB
small/90_dijkstra_killer_00 AC 31 ms 12060 KB
small/90_dijkstra_killer_01 AC 31 ms 11924 KB
small/91_tayama_killer_00 AC 30 ms 9888 KB
small/91_tayama_killer_01 AC 28 ms 8992 KB
small/91_tayama_killer_02 AC 31 ms 10912 KB
small/91_tayama_killer_03 AC 33 ms 12960 KB
small/91_tayama_killer_04 AC 26 ms 6816 KB
small/91_tayama_killer_05 AC 30 ms 11036 KB