반응형
간단한 DFS기초 문제인데 벡터 말고 될수있으면 구조체 배열 쓸것 -> 시간초과 발생
#include<iostream>
#include<vector>
using namespace std;
long long N, M;
long long result, cur;
struct Node{
int p;
int s;
};
Node arr[25];
void DFS(int idx)
{
if ( N <= 0)
{
return;
}
if(cur > result)
{
result = cur;
}
for (int i = idx + 1; i < M; i++)
{
N -= arr[i].p;
cur += arr[i].s;
DFS(i);
cur -= arr[i].s;
N += arr[i].p;
}
}
int main(int argc, char** argv)
{
int test_case;
int T;
cin >> T;
/*
여러 개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
*/
for (test_case = 1; test_case <= T; ++test_case)
{
cin >> N >> M;
cur = 0;
result = 0;
for (int i = 0; i < M; i++)
{
cin >> arr[i].p >> arr[i].s;
}
for (int i = 0; i < M; i++)
{
N -= arr[i].p;
cur += arr[i].s;
DFS(i);
cur -= arr[i].s;
N += arr[i].p;
}
cout << "#" << test_case << " " << result << endl;
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
반응형
'Algorithm' 카테고리의 다른 글
3503. 초보자를 위한 점프대 배치하기 (0) | 2020.05.29 |
---|---|
6782. 현주가 좋아하는 제곱근 놀이 (0) | 2020.05.28 |
2018 KAKAO BLIND RECRUITMENT[1차] 뉴스 클러스터링 (0) | 2020.05.08 |
2018 KAKAO BLIND RECRUITMENT[1차] 캐시 (0) | 2020.05.08 |
2018 KAKAO BLIND RECRUITMENT[1차] 다트 게임 (0) | 2020.05.08 |