# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
134550 | 20160161simone | 선물상자 (IOI15_boxes) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define M 10000010
#define inf 0x3f3f3f
using namespace std;
int mi[M],p[M],N,K,L;
int main()
{
cin>>N>>K>>L;
for(int i=0;i<N;i++) cin>>p[i];
if(K==1)
{
long long ans=0;
for(int i=0;i<N;i++) ans+=min(abs(L-p[i]),abs(p[i]))*2;
//return ans;
}
if(K==N)
{
int Mli=p[0],Mlx=p[0],Mri=p[N-1],Mrx=p[N-1];
for (int i=0;i<N;i++)
{
if(p[i]*2<L) Mlx=p[i];
if(p[i]*2==L) return L;
if(p[i]*2>L)
{
Mri=p[i];
break;
}
}
if(Mli*2>L)
{
return (L-Mli)*2;
}
else
if(Mrx*2<L)
{
return Mrx*2;
}
else
{
if (L<Mlx*2+(L-Mri)*2) return L;
else return Mlx*2+(L-Mri)*2;
}
}
}