結果

問題 No.468 役に立つ競技プログラミング実践編
コンテスト
ユーザー 👑 tails
提出日時 2016-12-18 02:10:10
言語 C90
(gcc 15.2.0)
コンパイル:
gcc-15 -O2 -std=c90 -DONLINE_JUDGE -o a.out _filename_ -lm
実行:
./a.out
結果
AC  
実行時間 115 ms / 2,000 ms
コード長 476 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 192 ms
コンパイル使用メモリ 38,228 KB
最終ジャッジ日時 2026-02-23 23:51:45
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 31
other AC * 6
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c:4:1: warning: data definition has no type or storage class
    4 | n,y;
      | ^
main.c: In function 'main':
main.c:29:9: warning: incompatible implicit declaration of built-in function 'scanf' [-Wbuiltin-declaration-mismatch]
   29 |         scanf("%d%*d",&n);
      |         ^~~~~
main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
  +++ |+#include <stdio.h>
    1 | typedef A[500010];
main.c:37:12: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch]
   37 |         n=!printf("%d %d/%d",t[n-1],n-y,n);
      |            ^~~~~~
main.c:37:12: note: include '<stdio.h>' or provide a declaration of 'printf'

ソースコード

diff #
raw source code

typedef A[500010];
A a,b,c,la,lb,li;
A sa,sb,d={1},t;
n,y;

f(a,i){
	if(t[a]<i){
		t[a]=i;
	}
	if(!--d[a]){
		for(i=sa[a];i;i=la[i]){
			f(b[i],t[a]+c[i]);
		}
	}
}

g(b,i){
	if(!d[b]++){
		++y;
		for(i=sb[b];i;i=lb[i]){
			if(t[a[i]]==t[b]-c[i]){
				g(a[i]);
			}
		}
	}
}

main(i){
	scanf("%d%*d",&n);
	for(;~scanf("%d%d%d",a+i,b+i,c+i);++i){
		la[i]=sa[a[i]];sa[a[i]]=i;
		lb[i]=sb[b[i]];sb[b[i]]=i;
		++d[b[i]];
	}
	f(0,0);
	g(n-1);
	n=!printf("%d %d/%d",t[n-1],n-y,n);
}
0