School Marks CodeForces - 540B

来源:互联网 发布:淘宝发货无需物流 编辑:程序博客网 时间:2024/06/06 03:58

题意:

n个数字,已经给定k个,数字大小规定从1~P,和不可以超过x,中位数不低于y,求补全的数字

思路:

中位数小了就填y,大了就填1

    #include <iostream>    #include <stdio.h>    #include <cstring>    #include <algorithm>    #include <queue>    int a[10000];    int ans[10000];    using namespace std;    int main()    {        int n,p,k,x,y;        int sum=0;        cin>>n>>k>>p>>x>>y;        for(int i=1;i<=k;i++)            {            cin>>a[i];            sum+=a[i];            }        sort(a+1,a+1+k);        int cnt=0;        for(int i=k+1;i<=n;i++)        {            if(a[i/2]>=y)            {                ans[++cnt]=1;                a[i]=1;                sum+=1;            }            else            {                ans[++cnt]=y;                a[i]=y;                sum+=y;            }            sort(a+1,a+1+i);        }        if(sum>x||a[n/2+1]<y)        {            cout<<-1<<endl;        }        else{        for(int i=1;i<=cnt;i++)            cout<<ans[i]<<" ";        }        return 0;    }


0 0
原创粉丝点击