結果
問題 |
No.519 アイドルユニット
|
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
#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; }