Submission #2009314


Source Code Expand

#include<algorithm>
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
typedef long long lint;
typedef vector<int>vi;
typedef pair<int,int>pii;
typedef pair<lint,int>pli;
typedef pair<pii,pii>piipii;
#define rep(i,n)for(int i=0;i<(int)(n);++i)

const int DEBUG=0;


const int M=200000;
const int N=30000;
int n,m,src,dst;
vi s[M];
vector<lint> w[M];

vector<piipii> g[N];

void debug_vi(const vi&v){
  if(DEBUG){
    rep(i,v.size())cerr<<" "<<v[i];
    cerr<<endl;
  }
}

vector<lint> solve(int s){
  vector<lint> ret(n,1.e16);
  priority_queue<pli,vector<pli>,greater<pli> > que;
  que.push(pii(0,s));
  while(!que.empty()){
    pii t=que.top();que.pop();
    int v=t.second;
    lint d=t.first;
    if(ret[v]<=d)continue;
    ret[v]=d;
    for(auto w:g[v]){
      int wv=w.first.first;
      int wc=w.first.second;
      que.push(pli(d+wc,wv));
    }
  }
  return ret;
}

vector<lint> solve_delay(int s, const vector<lint> &sdis){
  vector<lint> ret(n,1e16);
  priority_queue<pli,vector<pli>,greater<pli> > que;
  que.push(pli(0,s));
  while(!que.empty()){
    pii t=que.top();que.pop();
    int v=t.second;
    lint d=t.first;
    if(ret[v]<=d)continue;
    ret[v]=d;
    for(auto w:g[v]){
      int wv=w.first.first;
      int wc=w.first.second;
      pii lane=w.second;
      int nv=lane.first;
      int nc=lane.second;
      que.push(pli(max(d+wc,nc+sdis[nv]),wv));
    }
  }
  return ret;
}

int main(){
  cin>>n>>m>>src>>dst;
  rep(i,m){
    int l;
    cin>>l;
    s[i]=vi(l),w[i]=vector<lint>(l-1);
    rep(j,l)cin>>s[i][j];
    rep(j,l-1)cin>>w[i][j];
    vi wacc(l);
    rep(j,l-1)wacc[j+1]=wacc[j]+w[i][j];
    rep(j,l-1){
      int u=s[i][j];
      int v=s[i][j+1];
      g[v].push_back(piipii(pii(u,w[i][j]),pii(s[i][l-1],wacc[l-1]-wacc[j])));
      g[u].push_back(piipii(pii(v,w[i][j]),pii(s[i][0],wacc[j])));
    }
  }
  vector<lint> vdst=solve(dst);
  vector<lint> ans=solve_delay(dst,vdst);
  cout<<ans[src]<<endl;
}

Submission Info

Submission Time
Task C - メンテナンス明け
User kirika_comp
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2050 Byte
Status WA
Exec Time 74 ms
Memory 15384 KB

Judge Result

Set Name Subtask1 Subtask2
Score / Max Score 0 / 50 0 / 50
Status
AC × 32
WA × 20
AC × 4
WA × 2
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 72 ms 15384 KB
large/20_large-01 AC 72 ms 15384 KB
large/20_large-02 WA 74 ms 15260 KB
large/20_large-03 AC 71 ms 15148 KB
large/20_large-04 WA 74 ms 15260 KB
large/31_max_large AC 27 ms 12992 KB
small/00_sample00 AC 5 ms 10368 KB
small/00_sample01 AC 5 ms 10368 KB
small/00_sample02 AC 6 ms 10368 KB
small/10_small-0000 WA 5 ms 10368 KB
small/10_small-0001 AC 6 ms 10368 KB
small/10_small-0002 WA 5 ms 10368 KB
small/10_small-0003 WA 5 ms 10368 KB
small/10_small-0004 AC 5 ms 10368 KB
small/10_small-0005 WA 5 ms 10368 KB
small/10_small-0006 WA 6 ms 10368 KB
small/10_small-0007 WA 5 ms 10368 KB
small/10_small-0008 WA 6 ms 10368 KB
small/10_small-0009 AC 5 ms 10368 KB
small/10_small-0010 AC 6 ms 10368 KB
small/10_small-0011 AC 5 ms 10368 KB
small/10_small-0012 WA 5 ms 10368 KB
small/10_small-0013 AC 5 ms 10368 KB
small/10_small-0014 AC 6 ms 10368 KB
small/10_small-0015 WA 6 ms 10368 KB
small/10_small-0016 AC 5 ms 10368 KB
small/10_small-0017 AC 6 ms 10368 KB
small/10_small-0018 AC 5 ms 10368 KB
small/10_small-0019 WA 5 ms 10368 KB
small/30_max_small AC 5 ms 10368 KB
small/40_simple_0000 WA 5 ms 10368 KB
small/40_simple_0001 WA 5 ms 10368 KB
small/40_simple_0002 WA 5 ms 10368 KB
small/40_simple_0003 AC 5 ms 10368 KB
small/40_simple_0004 AC 5 ms 10368 KB
small/40_simple_0005 AC 5 ms 10368 KB
small/40_simple_0006 AC 5 ms 10368 KB
small/40_simple_0007 AC 5 ms 10368 KB
small/40_simple_0008 AC 5 ms 10368 KB
small/40_simple_0009 WA 5 ms 10368 KB
small/40_simple_0010 AC 5 ms 10368 KB
small/40_simple_0011 AC 5 ms 10368 KB
small/40_simple_0012 AC 5 ms 10368 KB
small/40_simple_0013 WA 6 ms 10368 KB
small/40_simple_0014 WA 5 ms 10368 KB
small/40_simple_0015 AC 5 ms 10368 KB
small/40_simple_0016 AC 5 ms 10368 KB
small/40_simple_0017 AC 5 ms 10368 KB
small/40_simple_0018 AC 5 ms 10368 KB
small/40_simple_0019 AC 5 ms 10368 KB
small/90_dijkstra_killer_00 AC 5 ms 10368 KB
small/90_dijkstra_killer_01 AC 5 ms 10368 KB
small/91_tayama_killer_00 AC 6 ms 10368 KB
small/91_tayama_killer_01 WA 5 ms 10368 KB
small/91_tayama_killer_02 WA 5 ms 10368 KB
small/91_tayama_killer_03 AC 6 ms 10368 KB
small/91_tayama_killer_04 WA 5 ms 10368 KB
small/91_tayama_killer_05 WA 5 ms 10368 KB