結果
| 問題 |
No.90 品物の並び替え
|
| コンテスト | |
| ユーザー |
vintersn0w
|
| 提出日時 | 2018-05-13 21:43:19 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,620 bytes |
| コンパイル時間 | 643 ms |
| コンパイル使用メモリ | 74,676 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-28 10:40:23 |
| 合計ジャッジ時間 | 1,275 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 2 WA * 7 |
ソースコード
#include <iostream>
#include <algorithm>
#include <vector>
#include <stdio.h>
#include <cmath>
using namespace std;
typedef uint uint32_t;
int N, M;
int scores[9][9] = {};
int score_f[9] = {}, score_b[9] = {};
void debug_print() {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cout << scores[i][j] << '\t';
}
cout << score_b[i] << endl;
}
for (int i = 0; i < N; i++) {
cout << score_f[i] << '\t';
}
cout << '\n' << endl;
}
int main() {
cin >> N >> M;
int i,j,s;
for (int k = 0; k < M; k++) {
cin >> i >> j >> s;
scores[i][j] = s;
score_f[j] += s;
score_b[i] += s;
}
int ans[9] = {};
int used[9] = {};
for (int i = 0; i < N; i++) {
// debug_print();
int v=-1000, id=-1;
for (int j = 0; j < N; j++) {
if (used[j]) continue;
if (score_b[j] - score_f[j] > v) {
v = score_b[i] - score_f[i];
id = j;
}
}
ans[i] = id;
used[id] = 1;
for (int j = 0; j < N; j++) {
score_b[j] -= scores[j][id];
score_f[j] -= scores[id][j];
// scores[id][j] = 0;
// scores[j][id] = 0;
}
score_f[id] = 0;
score_b[id] = 0;
}
// for (int i = 0; i < N; i++) {
// cout << ans[i] << ' ';
// }
// cout << endl;
s = 0;
for (int i = 0; i < N - 1; i++) {
for (int j = i+1; j < N; j++) {
s += scores[ans[i]][ans[j]];
}
}
cout << s << endl;
}
vintersn0w