Aprilia   5년 전

92%에서 틀립니다.

예외 테스트 케이스가 뭘까요

minhye11   4년 전

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번예시 넣음

불필요한 부분까지 호출되고 있는듯합니다


댓글을 작성하려면 로그인해야 합니다.