void dfs(int pick)
{
for (int i = 0; i < N; i++) {
cout << S[i] << " ";
} /*출력확인*/
cout << "\n";
if (pick == N)
{
int aa = 0;
for (int j = 0; j < N; j++)
if (S[j] <= 0)
aa++;
ans = max(ans, aa);
return;
}
for (int i = 0; i < N; i++)
{
if (pick == i) continue;
if (S[i] <= 0) continue;
if (S[pick] <= 0) continue;
S[i] -= W[pick];
S[pick] -= W[i];
dfs(pick + 1);
S[i] += W[pick];
S[pick] += W[i];
}
dfs(pick + 1);
}
3
8 5
1 100
3 5
8 1 3
-92 -4 3
-92 -4 3
-92 -4 3
3 1 -2
-97 -4 -2
-97 -4 -2
3 1 -2
3 1 -2
8 1 3 <<< 그냥 DFS(2)코드 시작
-92 -4 3
-92 -4 3
8 -4 -97
8 -4 -97
8 1 3
3 1 -2
8 -4 -97
8 1 3
3
1번예시 넣음
불필요한 부분까지 호출되고 있는듯합니다
Aprilia 5년 전
92%에서 틀립니다.
예외 테스트 케이스가 뭘까요