Uva 13054 Solution

#include<bits/stdc++.h>
using namespace std;
int main()
{
int t, k = 1;
cin >> t;

while(t--)
{
int n, h, ta, tb;
cin >> n >> h >> ta >> tb;

vector<int>v(n);

for(int i=0;i<n;i++)
cin >> v[i];

sort(v.begin(), v.end());

int i = 0, j = n-1;
long long s1 = n*ta, s2 = 0;

while(i<j)
{
long long sum = v[i]+v[j];
if(sum < h)
{
s2 += tb;
v[i] = v[j] = -1;
i++, j--;
}
else
{
s2 += ta;
v[j] = -1;
j--;
}
}

if(v[i] != -1)
s2 += ta;

cout << "Case " << k++ << ": ";
if(s1<=s2)
cout << s1 << "\n";
else
cout << s2 << "\n";
}

return 0;
}

Comments