Submission #1246392


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> P;
#define F first
#define S second
vector<P> G[114514];
int dp[114514];
signed main(){
  int n,m,s,d;
  cin>>n>>m>>s>>d;
  int a[n],b[n],c[n];
  for(int i=0;i<n;i++) cin>>a[i]>>b[i]>>c[i];
  int x[m],y[m],t[m];
  for(int i=0;i<m;i++) cin>>x[i]>>y[i]>>t[i];
  for(int i=0;i<m;i++){
    x[i]--;y[i]--;
    G[x[i]].emplace_back(y[i],t[i]);
    G[y[i]].emplace_back(x[i],t[i]);
  }
  int INF=1LL<<55LL;
  for(int i=0;i<114514;i++) dp[i]=INF;
  priority_queue<P> q;
  s--;d--;
  q.emplace(0,s);
  dp[s]=0;
  while(!q.empty()){
    P p=q.top();q.pop();
    int d=-p.F,v=p.S;
    if(dp[v]<d) continue;
    int nd=dp[v];
    if(nd<=c[v]) nd=c[v];
    else{
      int k=(nd-c[v])%(a[v]+b[v]);
      if(k>=a[v]) nd+=a[v]+b[v]-k;
    }
    for(P e:G[v]){
      int u=e.F,nc=e.S;
      if(nd+nc<dp[u]){
	dp[u]=nd+nc;
	q.emplace(-dp[u],u);
      }
    }
  }
  cout<<dp[d]<<endl;
  return 0;
}

Submission Info

Submission Time
Task I - 信号待ち
User beet
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1017 Byte
Status AC
Exec Time 247 ms
Memory 13696 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 45
Set Name Test Cases
All 00-sample1, 00-sample2, 00-small0, 00-small1, 00-small10, 00-small11, 00-small12, 00-small13, 00-small14, 00-small15, 00-small16, 00-small17, 00-small18, 00-small19, 00-small2, 00-small3, 00-small4, 00-small5, 00-small6, 00-small7, 00-small8, 00-small9, 20-large0, 20-large1, 20-large10, 20-large11, 20-large12, 20-large13, 20-large14, 20-large15, 20-large16, 20-large17, 20-large18, 20-large19, 20-large2, 20-large3, 20-large4, 20-large5, 20-large6, 20-large7, 20-large8, 20-large9, 50-corner00, 50-corner01, 50-corner02
Case Name Status Exec Time Memory
00-sample1 AC 3 ms 3840 KB
00-sample2 AC 3 ms 3840 KB
00-small0 AC 3 ms 3840 KB
00-small1 AC 3 ms 3840 KB
00-small10 AC 17 ms 5120 KB
00-small11 AC 10 ms 4736 KB
00-small12 AC 18 ms 5248 KB
00-small13 AC 15 ms 4992 KB
00-small14 AC 12 ms 4864 KB
00-small15 AC 9 ms 4608 KB
00-small16 AC 11 ms 4864 KB
00-small17 AC 11 ms 4736 KB
00-small18 AC 8 ms 4224 KB
00-small19 AC 13 ms 4864 KB
00-small2 AC 3 ms 3840 KB
00-small3 AC 4 ms 3840 KB
00-small4 AC 3 ms 3840 KB
00-small5 AC 4 ms 3840 KB
00-small6 AC 3 ms 3840 KB
00-small7 AC 3 ms 3840 KB
00-small8 AC 4 ms 3840 KB
00-small9 AC 4 ms 3840 KB
20-large0 AC 236 ms 13696 KB
20-large1 AC 235 ms 13696 KB
20-large10 AC 233 ms 13568 KB
20-large11 AC 241 ms 13696 KB
20-large12 AC 236 ms 13696 KB
20-large13 AC 236 ms 13696 KB
20-large14 AC 233 ms 13696 KB
20-large15 AC 242 ms 13696 KB
20-large16 AC 234 ms 13568 KB
20-large17 AC 235 ms 13696 KB
20-large18 AC 242 ms 13696 KB
20-large19 AC 235 ms 13696 KB
20-large2 AC 235 ms 13696 KB
20-large3 AC 237 ms 13696 KB
20-large4 AC 243 ms 13696 KB
20-large5 AC 240 ms 13568 KB
20-large6 AC 247 ms 13696 KB
20-large7 AC 239 ms 13696 KB
20-large8 AC 237 ms 13696 KB
20-large9 AC 232 ms 13568 KB
50-corner00 AC 202 ms 13184 KB
50-corner01 AC 174 ms 13184 KB
50-corner02 AC 146 ms 13184 KB