1025. PAT Ranking (25)

题目链接:https://www.patest.cn/contests/pat-a-practise/1025
吐槽:我用数组做了一个版本,有两个测试点过不去,现在又用vector做了一个几乎一模一样的就给过了,有毒!

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
struct Node{
    long long int id;
    int score,local,rankl;
};

bool cmp(Node a,Node b){
    if(a.score != b.score)
        return a.score >b.score;
    else return a.id < b.id;
}
int main(){
    int n,k,num=0;
    scanf("%d",&n);
    vector<Node> vt;
    for(int i=1;i <= n;i++){
        scanf("%d",&k);
        vector<Node> v(k);
        for(int j=0;j<k;j++){
            scanf("%lld %d",&v[j].id,&v[j].score);
            v[j].local = i;
        }
        sort(v.begin(),v.end(),cmp);
        v[0].rankl=1;
        vt.push_back(v[0]);         
        for(int j=1;j < k;j++){
            if(v[j-1].score==v[j].score){
                v[j].rankl =v[j-1].rankl;
            }else{
                v[j].rankl= j+1;
            }
            vt.push_back(v[j]);
        }
    }
    sort(vt.begin(),vt.end(),cmp);
    printf("%d\n",vt.size());
    int r = 1;  
    for(int j=0;j < vt.size();j++){
        if(j>0&&vt[j-1].score!=vt[j].score){
            r = j + 1;
        }
        printf("%013lld %d %d %d\n",vt[j].id,r,vt[j].local,vt[j].rankl);
    }
    return 0;
}
全部评论

相关推荐

zzzzhz:兄弟你先猛猛投简历至少三百家,能约到面试就去面。最近可以速成智能小车,智慧家居烂大街的项目,不需要自己写,只需要把里面的代码讲解看明白就行。把其中涉及到的八股文都拿出来单独背一下,我去年找工作就一个智能小车智慧家居找了10k差不多。
点赞 评论 收藏
分享
Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务