L2-027 名人堂与代金券

这种排序题竟然没写出来 血亏 比赛的时候脑子一抽用map去了
老是不知道怎么写比较器怎么破
https://pintia.cn/problem-sets/994805046380707840/problems/994805055176163328

#include <stdio.h>
#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <sstream>
#include <algorithm>
using namespace std;
int N, G, K;
const int si = 10007;
struct Node {
    int v;
    string s;
};
bool cmp (Node x, Node y){
    if (x.v != y.v) return x.v > y.v;
    return x.s < y.s;
};
Node no[si];
int cnt = 0;

int main() {
    cin >> N >> G >> K;
    int sum = 0;
    for (int i = 0; i < N; i++) {
        string str; int a;
        cin >> str >> a;
        if (a >= G) {
            sum += 50;
        }
        if (a >= 60 && a < G) {
            sum += 20;
        }
        no[cnt].v = a;
        no[cnt++].s = str;
    }
    
    cout << sum << endl;
    sort(no, no + cnt, cmp);
    int num = 0;
    while (num < K) {
        int tp = 0;
        while(no[num + tp].v == no[num + tp + 1].v) {
            printf("%d ", num + 1);
            cout << no[num + tp].s;
            printf(" %d\n", no[num + tp].v);
            tp++;
        }
        printf("%d ", num + 1);
        cout << no[num + tp].s;
        printf(" %d\n", no[num + tp].v);
        num += tp + 1;
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • The Inner Game of Tennis W Timothy Gallwey Jonathan Cape ...
    网事_79a3阅读 12,207评论 3 20
  • 我们单枪匹马赤身裸体来到这尘世,不是为了寻求名利和虚荣,是要一份恒久的温暖、稳妥的安全感、踏实的幸福。如果这一切婚...
    小数你好阅读 162评论 0 0
  • 序 《山娃的蜕变》,讲述了1998年,在私营经济蓬勃发展的温州,18岁的文白,一位从没出过...
    阊江水阅读 399评论 0 6
  • 总结:每当走近投放有螺蛳的螃蟹养殖池塘,常常会听到“嘎嘎”、“吱吱”的声音,这是螃蟹们在享用水体中的“螺蛳美餐”,...
    小熊猫旺旺阅读 196评论 0 1