1. 程式人生 > >Doki Doki Literature Club

Doki Doki Literature Club

原題連結

Hint

題目沒啥難度,就是按照不同的冒泡都能完成。根據公式將給定的單詞和幸福度排序即可。

#include <iostream>
#include <algorithm>
#include <cstring>
#include <bits/stdc++.h>
using namespace std;

struct node
{
    char word[50];
    long long num;
} s[110];
bool cmp(node a,node b){
    if(a.num!=b.num)return a.num>b.num;
    if(a.num==b.num)return strcmp(a.word,b.word)<0;
}
int main()
{
    int t,n,m,i;
    long long h;
    cin>>t;
    while(t--)
    {
        cin>>n>>m;
        for(i=0; i<n; i++)
        {
            cin>>s[i].word>>s[i].num;
        }
        sort(s,s+n,cmp);
        h=0;
        for(i=0; i<m; i++)
        {
            h+=(m-i)*s[i].num;
        }
        cout<<h<<" ";
        for(i=0; i<m; i++)
        {
            if(i!=m-1)cout<<s[i].word<<" ";
            else cout<<s[i].word<<endl;
        }
    }
    return 0;
}