結果
問題 | No.468 役に立つ競技プログラミング実践編 |
ユーザー | tails |
提出日時 | 2016-12-18 00:28:09 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 377 ms / 2,000 ms |
コード長 | 702 bytes |
コンパイル時間 | 1,552 ms |
コンパイル使用メモリ | 170,460 KB |
実行使用メモリ | 35,532 KB |
最終ジャッジ日時 | 2024-12-14 04:46:09 |
合計ジャッジ時間 | 6,688 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 31 |
other | AC * 6 |
コンパイルメッセージ
main.cpp:35:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] 35 | main(){ | ^~~~
ソースコード
#include <bits/stdc++.h> using namespace std; int a[500010],b[500010],c[500010]; int n,m; list<int> xa[100010]; list<int> xb[100010]; int db[100010]; int ta[100010]; int u[100010]; int y; void f(int a,int t){ //cout << "(a,t)=("<<a<<","<<t<<")"<<endl; if(ta[a]<t){ ta[a]=t; } if(--db[a]==0){ for(auto i:xa[a]){ f(b[i],ta[a]+c[i]); } } } void g(int b,int t){ if(u[b]++) return; --y; for(auto i:xb[b]){ if(ta[a[i]]==t-c[i]){ g(a[i],t-c[i]); } } } main(){ cin>>n>>m; for(int i=0;i<m;++i){ cin>>a[i]>>b[i]>>c[i]; xa[a[i]].push_back(i); xb[b[i]].push_back(i); ++db[b[i]]; } db[0]=1; f(0,0); y=n; g(n-1,ta[n-1]); cout << ta[n-1] << " " << y << "/" << n << endl; }