結果
| 問題 |
No.90 品物の並び替え
|
| コンテスト | |
| ユーザー |
kaiyori_lab
|
| 提出日時 | 2014-12-07 20:11:57 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 61 ms / 5,000 ms |
| コード長 | 787 bytes |
| コンパイル時間 | 782 ms |
| コンパイル使用メモリ | 104,872 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-12 01:44:57 |
| 合計ジャッジ時間 | 1,416 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 9 |
ソースコード
import std.stdio;
import std.string;
import std.conv;
import std.algorithm;
import std.range;
import std.array;
void main(){
auto buf = readln.chomp.split(" ").map!(to!int);
int N = buf[0];
int M = buf[1];
int[][] pointTable = new int[][](N+1, N+1);
int getPoint(int[] arr, int acc = 0){
if(!arr.length) return acc;
int tempPoint;
foreach(e; arr[1..$]){ tempPoint += pointTable[arr[0]][e]; }
return getPoint(arr[1..$], acc + tempPoint);
}
foreach(i; 0..M){
auto buf2 = readln.chomp.split(" ").map!(to!int);
pointTable[buf2[0]][buf2[1]] = buf2[2];
}
int res = 0;
int[] items = iota(0, N).array;
do{
if(getPoint(items) > res) res = getPoint(items);
} while(nextPermutation(items));
res.writeln;
}
kaiyori_lab