結果
| 問題 |
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;
}
tails