結果

問題 No.519 アイドルユニット
ユーザー vjudge1
提出日時 2025-03-15 16:22:00
言語 C++17(gcc12)
(gcc 12.3.0 + boost 1.87.0)
結果
TLE  
実行時間 -
コード長 568 bytes
コンパイル時間 6,035 ms
コンパイル使用メモリ 207,168 KB
実行使用メモリ 17,840 KB
最終ジャッジ日時 2025-03-15 16:22:13
合計ジャッジ時間 10,755 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other TLE * 1 -- * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
int hang[50],lie[50],mp[50][50],ans,n;
void dfs(int x,int y,int now,int num){
	if (num==n) {
		ans=max(now,ans);
		return; 
	}
	while (x<=n&&y<=n){
		y++;
		if (y>n) {
			x++;y=1;
		} 
		if (hang[x]!=0||lie[y]!=0||x==y) continue;
		hang[x]=1;
		lie[x]=1;
		hang[y]=1;
		lie[y]=1;
		dfs(x,y,now+mp[x][y],num+2);
		hang[x]=0;
		lie[x]=0;
		hang[y]=0;
		lie[y]=0;
	}
}
signed main ()
{
	cin>>n;
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			cin>>mp[i][j];
	hang[0]=1;
	lie[0]=1;
	dfs(0,0,0,0);
	cout<<ans;
	return 0;
}
0