← Back to List

2798번: 블랙잭 ↗

Solutions

C++14
363 B | 363 chars
#include <iostream>
using namespace std;
int N,M,Max;
int ar[110];

int f(int x)
{
	return x>0?x:-x;
}
int main()
{
	cin>>N>>M;
	for(int x=0; x<N; x++) cin>>ar[x];
	for(int x=0; x<N; x++)
	{
		for(int y=x+1; y<N; y++)
		{
			for(int z=y+1; z<N; z++)
			{
				int S=ar[x]+ar[y]+ar[z];
				if(f(M-Max)>f(M-S)&&S<=M)
				{
					Max=S;
				}
			}
		}
	}
	cout<<Max;
}