結果

問題 No.90 品物の並び替え
ユーザー startcpp
提出日時 2014-12-07 20:02:23
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 117 ms
コード長 994 Byte
コンパイル時間 493 ms
使用メモリ 1,516 KB
最終ジャッジ日時 2019-10-16 09:34:15

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
sample.txt AC 3 ms
1,516 KB
test1.txt AC 14 ms
1,512 KB
test2.txt AC 3 ms
1,516 KB
test3.txt AC 3 ms
1,512 KB
test4.txt AC 5 ms
1,512 KB
test5.txt AC 13 ms
1,516 KB
test6.txt AC 11 ms
1,516 KB
test7.txt AC 3 ms
1,516 KB
test8.txt AC 3 ms
1,516 KB
test9.txt AC 117 ms
1,512 KB
テストケース一括ダウンロード

ソースコード

diff #
#include<iostream>
#include<string>
#include<algorithm>
#include<functional>
#include<vector>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
using namespace std;

int n,m;
int item1[109],item2[109], score[109];
vector<int> per;	//i番目にある品物の番号を格納
int ban[9];			//品物iが何番目にあるのかをban[i]に格納

int main(){
	int i,j;
	int ans = 0;
	
	cin >> n >> m;
	
	for( i = 0; i < m; i++ )
		cin >> item1[i] >> item2[i] >> score[i];
	
	for( i = 0; i < n; i++ )
		per.push_back(i);
	
	do{
		for( i = 0; i < n; i++ ){
			for( j = 0; j < n; j++ ){
				if( i == per[j] )
					break;
			}
			ban[i] = j;
		}
		
		int x = 0;
		for( i = 0; i < m; i++ ){
			if( ban[ item1[i] ] < ban[ item2[i] ] )
				x += score[i];
		}
		ans = max( x, ans );
	}while( next_permutation( per.begin(), per.end() ) );
	cout << ans << endl;
	return 0;
}
0