結果
| 問題 |
No.90 品物の並び替え
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-03-30 12:56:21 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 28 ms / 5,000 ms |
| コード長 | 749 bytes |
| コンパイル時間 | 1,447 ms |
| コンパイル使用メモリ | 138,752 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-12 03:17:10 |
| 合計ジャッジ時間 | 2,065 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 9 |
ソースコード
import std.stdio;
import std.algorithm;
void main() {
uint n, m; readf("%s %s\n", &n, &m);
uint[][] scoreTable = loadScoreTable(n, m);
uint maxScore = 0;
uint[] a; foreach (i; 0..n) a ~= i;
do {
maxScore = max( maxScore, score(a, scoreTable) );
} while (nextPermutation(a));
writeln(maxScore);
}
uint[][] loadScoreTable(uint n, uint m) {
uint[][] table = new uint[][](n, n);
foreach (_; 0..m) {
uint i, j, s;
readf("%s %s %s\n", &i, &j, &s);
table[i][j] = s;
}
return table;
}
uint score(uint[] a, uint[][] scoreTable) {
uint s = 0;
foreach (j, aj; a) {
foreach (_, ai; a[0..j]) {
s += scoreTable[ai][aj];
}
}
return s;
}