結果

問題 No.468 役に立つ競技プログラミング実践編
ユーザー tails
提出日時 2016-12-18 02:10:10
言語 C90
(gcc 12.3.0)
結果
AC  
実行時間 92 ms / 2,000 ms
コード長 476 bytes
コンパイル時間 250 ms
コンパイル使用メモリ 20,864 KB
実行使用メモリ 11,392 KB
最終ジャッジ日時 2024-12-23 15:11:41
合計ジャッジ時間 3,895 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 31
other AC * 6
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c:1:9: warning: type defaults to ‘int’ in declaration of ‘A’ [-Wimplicit-int]
    1 | typedef A[500010];
      |         ^
main.c:4:1: warning: data definition has no type or storage class
    4 | n,y;
      | ^
main.c:4:1: warning: type defaults to ‘int’ in declaration of ‘n’ [-Wimplicit-int]
main.c:4:3: warning: type defaults to ‘int’ in declaration of ‘y’ [-Wimplicit-int]
    4 | n,y;
      |   ^
main.c:6:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
    6 | f(a,i){
      | ^
main.c: In function ‘f’:
main.c:6:1: warning: type of ‘a’ defaults to ‘int’ [-Wimplicit-int]
main.c:6:1: warning: type of ‘i’ defaults to ‘int’ [-Wimplicit-int]
main.c: At top level:
main.c:17:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
   17 | g(b,i){
      | ^
main.c: In function ‘g’:
main.c:17:1: warning: type of ‘b’ defaults to ‘int’ [-Wimplicit-int]
main.c:17:1: warning: type of ‘i’ defaults to ‘int’ [-Wimplicit-int]
main.c: At top level:
main.c:28:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
   28 | main(i){
      | ^~~~
main.c: In function ‘main’:
main.c:28:1: warning: type of ‘i’ defaults to ‘int’ [-Wimplicit-int]
main.c:29:9: warning: implicit declaration of function ‘scanf’ [-Wimplicit-function-declaration]
   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:29:9: warning: incompatible implicit declaration of built-in function ‘scanf’ [-Wbuiltin-declaration-mismatch]
   29 |         scanf("%d%*d",&n);
      |         ^~~~~
main.c:29:9: note: include ‘<stdio.h>’ or provide a declaration of ‘scanf’
main.c:37:12: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration]
   37 |         n=!printf("%d %d/%d",t[n-1],n-y,n);
      |            ^~~~~~
main.c:37:12: 

ソースコード

diff #

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