记录编号 249317 评测结果 AWWWAWAAAW
题目名称 饭堂 最终得分 50
用户昵称 Gravatarasddddd 是否通过 未通过
代码语言 C++ 运行时间 0.066 s
提交时间 2016-04-12 15:43:54 内存使用 0.40 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <functional>
#define maxn 11000
using namespace std;
int yuan[maxn],bian[maxn];
struct haha{
    int v,wei;
    bool fix;
};
bool operator <(const haha &a,const haha&b){
    if (a.v!=b.v) {
        return a.v>b.v;
    }
    else if(a.fix!=b.fix){
        return a.fix<b.fix;
    }
    else if(a.fix==1){//a.fix==1 equals that change x into a lower num
        return a.wei<b.wei;
    }
    else{
        return a.wei>b.wei;
    }
}
bool operator >(const haha&a ,const haha &b){
    return !(a<b);
}
priority_queue<haha >que;
int n,k;
void get_input(){
    cin>>n>>k;
    for (int i=0; i<n; i++) {
        char a;
        cin>>a;
        yuan[i]=a-'0';
    }
}
void work(){
    int ans=99999999;
    queue<int>qua;
    int shu;
    for (int i=0; i<=9; i++) {
        while (!que.empty()) {
            que.pop();
        }
        queue<int>quee;
        while (!quee.empty()) {
            quee.pop();
        }
        for (int j=0; j<n; j++) {
            haha a;
            a.v=i-yuan[j];
            if (a.v<0) {
                a.v=-a.v;
                a.fix=1;
            }
            a.wei=j;
            que.push(a);
        }
        int anss=0;
        int b=k;
        while (b--) {
            haha a=que.top();
            que.pop();
            quee.push(a.wei);
            anss+=a.v;
        }
        if (anss<ans) {
            ans=anss;
            while (!qua.empty()) {
                qua.pop();
            }
            while (!quee.empty()) {
                int k=quee.front();
                quee.pop();
                qua.push(k);
                shu=i;
            }
        }
    }
    cout<<ans<<endl;
    while (!qua.empty()) {
        int k=qua.front();
        qua.pop();
        yuan[k]=shu;
    }
    for (int i=0; i<n; i++) {
        cout<<yuan[i];
    }
}
int main(){
    freopen("fancy.in", "r", stdin);
    freopen("fancy.out", "w", stdout);
    get_input();
    work();
}