結果

問題 No.90 品物の並び替え
コンテスト
ユーザー abinull
提出日時 2025-11-03 17:52:04
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 13 ms / 5,000 ms
コード長 910 bytes
コンパイル時間 879 ms
コンパイル使用メモリ 81,236 KB
実行使用メモリ 7,716 KB
最終ジャッジ日時 2025-11-03 17:52:06
合計ジャッジ時間 1,894 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 9
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    int n, m, item1, item2, sc;
    
    cin >> n >> m;
    vector<vector<int>> score(n,vector<int>(n, 0));

    while(m>0) {
        cin >> item1 >> item2 >> sc ;
        score[item1][item2] = sc;
        m--;
    }

    vector<int> item_order(n,0);
    
    for(int i=0;i<=n-1;i++) {
        item_order[i] = i;
    }

    int sum1 = 0;
    do {
        int sum2 = 0;
        for(auto itr1=item_order.begin();itr1!=item_order.end()-1;itr1++) {
            for(auto itr2=itr1+1;itr2!=item_order.end();itr2++) {
                if (score[*itr1][*itr2]) sum2 += score[*itr1][*itr2];
                continue;
            }
        }
        sum1 = max(sum1,sum2);

    } while (next_permutation(item_order.begin(),item_order.end()));

    cout << sum1 << endl;

    return 0;
}
0