#2798
#include <iostream>
using namespace std;
int main()
{
int n, m, num;
int sum=-1;
int min=987654321;
int* card;
cin >> n >> m;
card = new int[n];
for(int i=0; i<n; i++)
{
cin >> num;
card[i] = num;
}
for(int i=0; i<n; i++)
{
for(int j=i+1; j<n; j++)
{
for(int k=j+1; k<n; k++)
{
if( (m - (card[i] + card[j] + card[k])) < min && (card[i] + card[j] + card[k]) <= m)
{
sum = card[i] + card[j] + card[k];
min = m - (card[i] + card[j] + card[k]);
//cout << card[i] << " " << card[j] << " " << card[k] << endl;
}
}
}
}
cout << sum << endl;
return 0;
}
#15721
#1713
#include <iostream>
using namespace std;
int main()
{
int n, rec;
int *cd = nullptr;
int *cnt = nullptr;
int *dur = nullptr;
int num;
int isitfull = 0;
bool nowok;
int min;
int min_idx;
cin >> n;
cin >> rec;
cd = new int[n];
cnt = new int[n];
dur = new int[n];
for (int i = 0; i < n; i++)
{
cd[i] = 0;
cnt[i] = 0;
dur[i] = 0;
}
for (int i = 0; i < rec; i++)
{
cin >> num;
for (int i = 0; i < n; i++)
{
cout << "숫자는 :" << num << endl;
cout << cd[i] << " " << cnt[i] << " " << endl;
}
cout << endl;
min = 987654321;
min_idx = -1;
nowok = false;
while (nowok != true)
{
for (int j = 0; j < n; j++)
{
if (cd[j] == 0)
{
cd[j] = num;
cnt[j]++;
isitfull++;
nowok = true;
break;
}
if (isitfull == n)
{
for (int k = 0; k < n; k++)
{
if (min > cnt[k])
{
min = cnt[k];
min_idx = k;
}
if (cd[k] == num)
{
cnt[k]++;
nowok = true;
break;
}
}
if (nowok == true)
break;
cd[min_idx] = num;
cnt[min_idx] = 1;
nowok = true;
break;
}
}
}
}
for (int i = 0; i < n; i++)
{
cout << cd[i] << " ";
}
return 0;
}