Coding/PS
카드의 합 구하기
_rien
2019. 7. 5. 23:14
https://www.acmicpc.net/problem/2798
#include
#include
#include
using namespace std;
int main ()
{
vector deck; // 카드 덱을 저장할 벡터
int N, M, temp; // N = 카드의 개수, M = 카드의 합
int i, j, k; // 반복 인수
int sum=0, top=-1; // sum = 일시적인 카드의 합, top = 여태까지 최고의 합
// 입력을 받는다.
cin >> N >> M;
deck.reserve(N);
for (i=0; i < N; i++)
{
cin >> temp;
deck.push_back(temp);
}
// bruteforce search
for (i=0; i<=deck.size()-3; i++)
for (j=i+1; j<=deck.size()-2; j++)
for (k=j+1; k<=deck.size()-1; k++)
{
sum = deck[i] + deck[j] + deck[k];
if (sum <= M && top<sum) top = sum;
// 만약 M값이 나오면 서칭을 그만둔다.
if (top == M) {cout << M << endl; return 0;}
}
cout << top << endl;
}