CF540 B 贪心
坑在B题是常态,弱智的日常。
是找中位数不是平均值。
慌了,乱写了
出了一塌糊涂的ZZ代码
特记一下
/** @Date : 2017-08-27 17:25:11
* @FileName: B.cpp
* @Platform: Windows
* @Author : Lweleth (SoungEarlf@gmail.com)
* @Link : https://github.com/
* @Version : $Id$
*/
#include <bits/stdc++.h>
#define LL long long
#define PII pair<int ,int>
#define MP(x, y) make_pair((x),(y))
#define fi first
#define se second
#define PB(x) push_back((x))
#define MMG(x) memset((x), -1,sizeof(x))
#define MMF(x) memset((x),0,sizeof(x))
#define MMI(x) memset((x), INF, sizeof(x))
using namespace std;
const int INF = 0x3f3f3f3f;
const int N = 1e5+20;
const double eps = 1e-8;
vector<int>q;
int main()
{
int n, k, p, x, y;
while(cin >> n >> k >> p >> x >> y)
{
q.clear();
int rec = 0;
int ma = 0;
int mi = 0;
int cnt1 = 0;
int cnt2 = 0;
int flag = 0;
for(int i = 0; i < k; i++)
{
int t;
scanf("%d", &t);
if(t >= y)
{
if(cnt2 == (n+1)/2)
cnt1++;
else cnt2++;
}
else
{
if(cnt1 == n/2)
cnt2++, flag = 1;
else cnt1++;
}
rec += t;
}
if(rec + n/2 - cnt1 + ((n + 1) / 2 - cnt2)*y > x || flag)
{
printf("-1\n");
continue;
}
for(int i = 0; i < (n/2) - cnt1; i++)
rec+=1, q.PB(1);
for(int i = 0; i < (n + 1) / 2 - cnt2; i++)
rec+=y, q.PB(y);
if(rec > x)
{
printf("-1\n");
continue;
}
for(auto i:q)
printf("%d ", i);
printf("\n");
}
return 0;
}

浙公网安备 33010602011771号