难度:4

主要难度是读懂题意,首先是按照帮贡,和输入顺序排序,除了帮主副帮主,其余人重新分配职位,而且题目保证前三人不动,第一个排序是为了分配职位,

然后要输出,第一优先级是职位,然后是等级,然后是顺序,第二个排序是为了输出。

#include <bits/stdc++.h>#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(), (x).end()using namespace std;typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pa;struct node {string work, name;int x, level, flag, r;node() {}node(string a, string b, int c, int d, int e, int f = 0): work(a), name(b), x(c), level(d), flag(e), r(f) {}
};bool cmp1(node a, node b) {if (a.x != b.x) return a.x > b.x;else return a.flag < b.flag;
}bool cmp2(node a, node b) {if (a.r != b.r) return a.r < b.r;else if (a.level != b.level) return a.level > b.level;else return a.flag < b.flag;
}int main() {int n;cin >> n;vector<node> v;for (int i = 0; i < n; i++) {string work, name;int x, level;cin >> name >> work >> x >> level;v.pb(node(work, name, x, level, i));}v[0].r = 0;v[1].r = 1;v[2].r = 1;sort(v.begin() + 3, v.end(), cmp1);int x1 = 2;int x2 = x1 + 4;int x3 = x2 + 7;int x4 = x3 + 25;for (int i = 3; i < (int) v.size(); i++) {if (i < 3 + x1) v[i].work = "HuFa", v[i].r = 2;else if (i < 3 + x2) v[i].work = "ZhangLao", v[i].r = 3;else if (i < 3 + x3) v[i].work = "TangZhu", v[i].r = 4;else if (i < 3 + x4) v[i].work = "JingYing", v[i].r = 5;else v[i].work = "BangZhong", v[i].r = 6;}sort(all(v), cmp2);for (int i = 0; i < (int) v.size(); i++) {cout << v[i].name << " " << v[i].work << " " << v[i].level << endl;}return 0;
}

P1786 帮贡排序相关推荐

  1. P1786 帮贡排序c++良心题解

    P1786 帮贡排序 题目背景 在 absi2011 的帮派里,死号偏多.现在 absi2011 和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整. 题目描 ...

  2. P1786帮贡排序题解

    题目入口 洛谷P1786 题目背景 在absi2011的帮派里,死号偏多.现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整. 题目描述 ...

  3. [luogu p1786] 帮贡排序

    传送门 帮贡排序 题目背景 在absi2011的帮派里,死号偏多.现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整. 题目描述 目前帮派 ...

  4. 洛谷P1786 帮贡排序(冒泡排序法)

    题目背景 在 absi2011 的帮派里,死号偏多.现在 absi2011 和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整. 题目描述 目前帮派内共最多有 ...

  5. P1786 帮贡排序 【模拟】

    题目背景 在absi2011的帮派里,死号偏多.现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整. 题目描述 目前帮派内共最多有一位帮主 ...

  6. 1. 帮贡排序-模拟与高精度(普及/提高-)

    文章目录 问题描述 问题分析 代码实现 运行结果 总结 问题描述   在absi2011的帮派里,死号偏多.现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人 ...

  7. 备战蓝桥杯-枚举、排序、模拟专项练习详解(含有多道蓝桥杯原题)

    枚举.模拟与排序 蓝桥杯所有专项练习 蓝桥杯原题: 连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在 1∼N1∼N 的某个排列中有多少个连号区间呢? 这里所说的连号区间的定义是: 如果区 ...

  8. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  9. 伍六七带你学算法 进阶篇-排序算法

    给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 各排序算 ...

最新文章

  1. rethat linux安装nginx,RedHat和CentOS下Nginx安装
  2. ANACONDA安装更新第三方包
  3. git bash打印当前文件结构_6 个方便的 Git 脚本
  4. 深度学习Deep Learning 相关库简介
  5. VTK:图片之CombiningRGBChannels
  6. 关系数据库NoSQL数据库
  7. python 打包发布网站_Python代码的打包与发布
  8. mysql 学习笔记13 查询语句强化
  9. vscode怎么全局搜索_VS Code 新版本发布!支持远程开发、同步设置等新特性
  10. java pdf分页显示,java读取pdf(可分页读取)
  11. oracle左连接没用_Oracle左连接,右连接
  12. 背景渐变/字体颜色渐变(可应用于银行卡背景框)
  13. 非齐次线性方程组解的结构暂记
  14. zookeeper启动报错: Invalid configuration, only one server specified (ignoring)
  15. torch.nn模块 池化层
  16. 计算机管理无guest用户,win10管理账户里头没有guest账户
  17. 探讨SEO之项目管理
  18. 凯撒加密的python语言程序_python实现凯撒密码、凯撒加解密算法
  19. 职场上的六大核心潜规则
  20. 开发者所需要知道的iOS7 SDK新特性

热门文章

  1. MISRA-C 2004 规则解读(41S-60S)
  2. 【智能流程自动化】德勤:自动化时代关于机器人自动化与智能自动化的行业领导者指南
  3. 两层循环终止内层或外层循环的方法(break和continue的用法)
  4. Linux基础命令---文本过滤coi
  5. Qt工程中c++实现wrl到pcd格式转换
  6. ArcGIS Pro基于遥感影像使用深度学习地物识别评估植被健康情况(教程)
  7. Keil5安装包括C51版本和STM32的mdk514版本
  8. U9系统报错:Enterprise[9999] 不存在
  9. js赋值改变后原来的东西也改变了,影响了好几个其它使用同一个源数据的原因以及解决方法
  10. char ch= 中 什么意思java_在 Java 语言中定义了如下变量: char ch; 下列赋值语句正确的是_韩语初下答案_学小易找答案...