Submission #618285
Source Code Expand
#include <iostream>
#include <climits>
#include <map>
#include <queue>
#include <vector>
#include <cstring>
using namespace std;
#define show(x) cout << #x << "=" << x << endl
#define show2(x,y) cout << #x << "=" << x << "," << #y << "=" << y << endl
#define show3(x,y,z) cout << #x << "=" << x << "," << #y << "=" << y << "," << #z << "=" << z << endl
typedef long long ll;
ll INF = LONG_MAX/2;
struct edge{
int from,to,trm;
ll cost,trmc;
edge(int _from, int _to, ll _cost, int _trm, ll _trmc) {from=_from; to=_to; cost=_cost; trm=_trm; trmc=_trmc;}
};
typedef pair<ll,int> P;
int V;
vector<edge> G[25260];
ll d[25260];
ll c[25260];
void dijkstra(int s){
priority_queue<P,vector<P>,greater<P>> que;
fill(d,d+V,INF);
d[s]=0;
que.push(P(0,s));
while(!que.empty()){
P p = que.top();
que.pop();
int v = p.second;
if(d[v]<p.first) continue;
for(int i=0; i<G[v].size();i++){
edge e = G[v][i];
if(d[e.from] > d[e.to]+e.cost){
d[e.from] = d[e.to]+e.cost;
que.push(P(d[e.from],e.from));
}
}
}
}
void dijkstra2(int s){
priority_queue<P,vector<P>,greater<P>> que;
fill(c,c+V,INF);
memset(c, 0x3f, sizeof c);
c[s]=0;
que.push(P(0,s));
ll tmp;
while(!que.empty()){
P p = que.top();
que.pop();
int v = p.second;
if(c[v]<p.first) continue;
for(int i=0; i<G[v].size();i++){
edge e = G[v][i];
tmp = max(c[e.to]+e.cost, d[e.trm] + e.trmc);
//show2(d[e.trm] ,e.trmc);
//show2(c[e.to]+e.cost, d[e.trm] + e.trmc);
//show(tmp);
if(c[e.from] > tmp){
c[e.from] = tmp;
que.push(P(c[e.from],e.from));
}
}
}
}
int main(){
int N,M,src,dst;
cin>>N>>M>>src>>dst;
V=N;
int L;
for(int j=0;j<M;j++){
cin>>L;
//cout << L << endl;
vector<int> s(L);
vector<ll> W(L);
for(int i=0;i<L;i++) cin>>s[i];
//for(int j=0;j<L;j++) cout << s[j] << endl;
for(int i=0;i<L-1;i++) cin>>W[i+1], W[i+1]+=W[i];
//for(int j=0;j<L;j++) cout << W[j] << endl;
for(int i=0;i<L-1;i++){
G[s[i+1]].push_back(edge(s[i], s[i+1], W[i+1]-W[i], s[L-1], W[L-1]-W[i]));
G[s[i]].push_back(edge(s[i+1], s[i], W[i+1]-W[i], s[0], W[i+1]-W[0]));
//show3(s[i],s[L-1],W[L-1]-W[i]);
//show3(s[i+1],s[0],W[i+1]-W[0]);
}
}
dijkstra(dst);
//for(int i=0;i<N;i++) cout << d[i] << ' '; cout << endl;
dijkstra2(dst);
//for(int i=0;i<N;i++) cout << d[i] << ' '; cout << endl;
//for(int i=0;i<N;i++) cout << c[i] << ' '; cout << endl;
cout << c[src] << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
C - メンテナンス明け |
User |
universato |
Language |
C++11 (GCC 4.9.2) |
Score |
100 |
Code Size |
2971 Byte |
Status |
AC |
Exec Time |
120 ms |
Memory |
6348 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 |
115 ms |
6348 KB |
large/20_large-01 |
AC |
120 ms |
6228 KB |
large/20_large-02 |
AC |
115 ms |
6220 KB |
large/20_large-03 |
AC |
113 ms |
6240 KB |
large/20_large-04 |
AC |
114 ms |
6224 KB |
large/31_max_large |
AC |
60 ms |
3792 KB |
small/00_sample00 |
AC |
25 ms |
1568 KB |
small/00_sample01 |
AC |
24 ms |
1564 KB |
small/00_sample02 |
AC |
24 ms |
1696 KB |
small/10_small-0000 |
AC |
25 ms |
1576 KB |
small/10_small-0001 |
AC |
25 ms |
1692 KB |
small/10_small-0002 |
AC |
27 ms |
1692 KB |
small/10_small-0003 |
AC |
28 ms |
1576 KB |
small/10_small-0004 |
AC |
25 ms |
1572 KB |
small/10_small-0005 |
AC |
25 ms |
1564 KB |
small/10_small-0006 |
AC |
25 ms |
1700 KB |
small/10_small-0007 |
AC |
25 ms |
1572 KB |
small/10_small-0008 |
AC |
25 ms |
1568 KB |
small/10_small-0009 |
AC |
29 ms |
1576 KB |
small/10_small-0010 |
AC |
25 ms |
1572 KB |
small/10_small-0011 |
AC |
25 ms |
1576 KB |
small/10_small-0012 |
AC |
28 ms |
1564 KB |
small/10_small-0013 |
AC |
28 ms |
1692 KB |
small/10_small-0014 |
AC |
26 ms |
1632 KB |
small/10_small-0015 |
AC |
27 ms |
1620 KB |
small/10_small-0016 |
AC |
25 ms |
1568 KB |
small/10_small-0017 |
AC |
26 ms |
1576 KB |
small/10_small-0018 |
AC |
25 ms |
1576 KB |
small/10_small-0019 |
AC |
27 ms |
1572 KB |
small/30_max_small |
AC |
26 ms |
1496 KB |
small/40_simple_0000 |
AC |
26 ms |
1696 KB |
small/40_simple_0001 |
AC |
26 ms |
1572 KB |
small/40_simple_0002 |
AC |
24 ms |
1696 KB |
small/40_simple_0003 |
AC |
24 ms |
1564 KB |
small/40_simple_0004 |
AC |
24 ms |
1576 KB |
small/40_simple_0005 |
AC |
24 ms |
1576 KB |
small/40_simple_0006 |
AC |
27 ms |
1572 KB |
small/40_simple_0007 |
AC |
28 ms |
1692 KB |
small/40_simple_0008 |
AC |
26 ms |
1696 KB |
small/40_simple_0009 |
AC |
27 ms |
1576 KB |
small/40_simple_0010 |
AC |
27 ms |
1696 KB |
small/40_simple_0011 |
AC |
26 ms |
1692 KB |
small/40_simple_0012 |
AC |
25 ms |
1684 KB |
small/40_simple_0013 |
AC |
26 ms |
1496 KB |
small/40_simple_0014 |
AC |
26 ms |
1696 KB |
small/40_simple_0015 |
AC |
29 ms |
1692 KB |
small/40_simple_0016 |
AC |
29 ms |
1564 KB |
small/40_simple_0017 |
AC |
29 ms |
1688 KB |
small/40_simple_0018 |
AC |
28 ms |
1568 KB |
small/40_simple_0019 |
AC |
26 ms |
1492 KB |
small/90_dijkstra_killer_00 |
AC |
26 ms |
1496 KB |
small/90_dijkstra_killer_01 |
AC |
28 ms |
1568 KB |
small/91_tayama_killer_00 |
AC |
26 ms |
1564 KB |
small/91_tayama_killer_01 |
AC |
26 ms |
1688 KB |
small/91_tayama_killer_02 |
AC |
26 ms |
1492 KB |
small/91_tayama_killer_03 |
AC |
26 ms |
1492 KB |
small/91_tayama_killer_04 |
AC |
26 ms |
1688 KB |
small/91_tayama_killer_05 |
AC |
27 ms |
1684 KB |