• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문드립니다.

20.12.21 19:55 작성 조회수 90

0

#include<iostream>

#include<algorithm>

#include<cstdio>

#include<vector>

#include<cmath>

#include<stack>

using namespace std;

int n;

vector<int> v(11);

int re,cnt;

void dp(int k,int sum){

if(k==n+1){

if(sum==re) cnt++;

}

else{

dp(k+1,sum+v[k]);

dp(k+1,sum);

dp(k+1,sum-v[k]);

}

}

int main(void){

int n;

cin >> n >> re;

for(int i=1;i<=n;i++){

cin >> v[i];

}

dp(1,0);

if(cnt==0) cout<<"-1";

else cout << cnt;

return 0;

}

제가 짠 코드입니다. 순서도 정답과 같이 햇습니다. 그런데 왜 이건 답이 안나오는지 모르겠습니다.

답변 1

답변을 작성해보세요.

1

안녕하세여^^

n을 전역으로 잡아놓고 또 main함수의 지역으로도 선언해서 그렇습니다.