gplt L2-009. 抢红包(结构体排序)

来源:互联网 发布:数据库设计模式 编辑:程序博客网 时间:2024/05/23 15:40


https://www.patest.cn/contests/gplt/L2-009

题意:中文题。。


思路:比较典型的结构体排序,完全按照自己的想法1A的,可还是感觉有点不踏实,应该是还不熟练吧。


#include <stdio.h>#include <algorithm>#include <string.h>#include <math.h>#include <iostream>using namespace std;typedef long long ll;const int N = 10005;struct node{    int id;    double val;    int num;}mon[N];int n;bool cmp(node x, node y){    if(x.val!=y.val) return x.val>y.val;    else if(x.num!=y.num) return x.num>y.num;    else if(x.id!=y.id) return x.id<y.id;}void init(){    for(int i = 1; i <= n; i++)    {        mon[i].id = i;        mon[i].num = 0;        mon[i].val = 0;    }}int main(){   // freopen("in.txt", "r", stdin);    int k, id, val;    while(~scanf("%d", &n))    {        init();        for(int i = 1; i <= n; i++)        {            mon[i].id = i;            scanf("%d", &k);            for(int j = 1; j <= k; j++)            {                scanf("%d%d", &id, &val);                mon[i].val-=val;                mon[id].val+=val;                mon[id].num++;            }        }        sort(mon+1, mon+n+1, cmp);        for(int i = 1; i <= n; i++)        {            printf("%d %.2lf\n", mon[i].id, mon[i].val/100);        }    }    return 0;}


0 0
原创粉丝点击