結果
問題 | No.519 アイドルユニット |
ユーザー |
![]() |
提出日時 | 2017-05-28 22:43:42 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 642 ms / 1,000 ms |
コード長 | 512 bytes |
コンパイル時間 | 218 ms |
コンパイル使用メモリ | 30,592 KB |
実行使用メモリ | 67,328 KB |
最終ジャッジ日時 | 2024-10-03 03:50:06 |
合計ジャッジ時間 | 6,178 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 34 |
コンパイルメッセージ
main.c:1:1: warning: data definition has no type or storage class 1 | f[24][24]; | ^ main.c:1:1: warning: type defaults to 'int' in declaration of 'f' [-Wimplicit-int] main.c:2:1: warning: data definition has no type or storage class 2 | g[1<<24]; | ^ main.c:2:1: warning: type defaults to 'int' in declaration of 'g' [-Wimplicit-int] main.c:4:1: warning: return type defaults to 'int' [-Wimplicit-int] 4 | main(){ | ^~~~ main.c: In function 'main': main.c:6:9: warning: implicit declaration of function 'scanf' [-Wimplicit-function-declaration] 6 | scanf("%d",&n); | ^~~~~ main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf' +++ |+#include <stdio.h> 1 | f[24][24]; main.c:6:9: warning: incompatible implicit declaration of built-in function 'scanf' [-Wbuiltin-declaration-mismatch] 6 | scanf("%d",&n); | ^~~~~ main.c:6:9: note: include '<stdio.h>' or provide a declaration of 'scanf' main.c:35:9: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration] 35 | printf("%d",g[(1<<n)-1]); | ^~~~~~ main.c:35:9: note: include '<stdio.h>' or provide a declaration of 'printf' main.c:35:9: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch] main.c:35:9: note: include '<stdio.h>' or provide a declaration of 'printf'
ソースコード
f[24][24]; g[1<<24]; main(){ int n; scanf("%d",&n); for(int y=0;y<n;++y){ for(int x=0;x<n;++x){ scanf("%d",&f[y][x]); } } for(int j=0;j<n;++j){ for(int i=0;i<n;++i){ if(j-i){ g[1<<j|1<<i]=f[j][i]; } } } for(int k=1;k<1<<n;++k){ if(!__builtin_parity(k)){ int b=0; int j=0; while(!(k&1<<j))++j; for(int i=j+1;i<n;++i){ if(k&1<<i){ int d=g[k^1<<j^1<<i]+f[j][i]; if(b<d){ b=d; } } } g[k]=b; } } printf("%d",g[(1<<n)-1]); return 0; }