結果

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

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

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

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