2020浙江工业大学程序设计迎新赛——决赛(重现赛)A 超级卷王
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了2020浙江工业大学程序设计迎新赛——决赛(重现赛)A 超级卷王,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2638字,纯文字阅读大概需要4分钟。
内容图文
![2020浙江工业大学程序设计迎新赛——决赛(重现赛)A 超级卷王](/upload/InfoBanner/zyjiaocheng/614/ac0674054b9348d99a7307937c11e52d.jpg)
题目
Description
内卷指不能从外部渠道获取资源,没有产生整体的增量,只能在存量分配上做文章,往往损害内部一部分甚至绝大多数群体利益来补偿少数群体的利益,最终整体利益没有增加,持续性内耗的一种状态。内卷本身是个艰难晦涩的社会学专用名词,今天之所以能成为热搜,都是因为今天内卷是很多人今天可以亲身感受到的社会现象。
“内卷”被现在很多高校学生来指代非理性的内部竞争或“被自愿”竞争,这种风气已经逐渐蔓延到中小学甚至幼儿园。
已知浙江工业大学幼儿园今年有 n 名新生入学,每名同学会有以下属性:
编号
i
d
i
id_i
idi?
初始能力值
s
i
s_i
si?
自卷系数
p
i
p_i
pi? 即该名同学每天结束后能力能够增长
p
i
p_i
pi?
为了选拔出一名“超级卷王”,浙工大幼儿园每天都会进行一次测试,直到角逐出“超级卷王”为止。
每次测试会根据同学们的能力值为第一关键字降序排名,编号为第二关键字按升序排名,淘汰排名较低的 ? n 2 ? \lfloor \frac{n}{2} \rfloor ?2n??人 ( 其中 ? n 2 ? \lfloor \frac{n}{2} \rfloor ?2n??指 n n n 除 2 2 2 并向下取整)
在本次测试中排名前十的同学会受到老师的褒奖,备受激励,能力值立即增长 R R R。
当剩余人数不少于66人时,排名前三的同学会受到大多数人的嘲讽,心情变差,下一天能力值下降LL。
请你帮浙工大幼儿园的老师预测出最终的卷王是谁,并输出他的编号和最终的能力值。
Input
第一行输入三个正整数
n
n
n、
R
R
R、
L
L
L,分别代表新生的人数,受到老师褒奖后能力增长值,受到同学嘲讽后能力下降值。
第二行输入 nn 个正整数
i
d
i
id_i
idi?,代表第
i
i
i 个新生的编号。
第三行输入
n
n
n 个正整数
s
i
s_i
si?代表第 ii 个新生的初始能力值。
第四行输入
n
n
n 个整数
p
i
p_i
pi? ,代表第 ii 个新生的自卷系数。
n
≤
100
n\le 100
n≤100
0
≤
L
,
R
≤
1
0
7
0\le L,R\le 10^7
0≤L,R≤107
1
≤
i
d
i
≤
n
1 \le id_i \le n
1≤idi?≤n
0
≤
s
i
≤
1
0
8
0 \le s_i \le 10^8
0≤si?≤108
?
1
0
7
≤
p
i
≤
1
0
7
-10^7 \le p_i \le 10^7
?107≤pi?≤107
Output
输出两个正整数,分别代表“超级卷王”编号和最终能力值,并用一个空格分隔。
Sample Input 1
2 2 0
1 2
1 2
4 1
Sample Output 1
2 4
Hint
第一天:
同学的编号为 1,21,2,能力分别为 1,21,2,排名分别为 2,12,1。
编号为 11 的同学被淘汰,22 号同学受到褒奖能力值增长 22,剩余人数少于 66,没有人受到嘲讽。
最终 22 号同学获胜,能力值为 44。
思路
按照题目要求来模拟,立即增加的属性在统计之前加上,第二天发生的在统计之后变化。注意每天刚开始的时候排序。
代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 100+10;
class Stu {
public:
ll id,s,p;
}t[maxn];
bool cmp(Stu a,Stu b)
{
return a.s==b.s?a.id<b.id:a.s>b.s;
}
int main()
{
int n,r,l;
cin>>n>>r>>l;
for(int i=1;i<=n;i++) cin>>t[i].id;
for(int i=1;i<=n;i++) cin>>t[i].s;
for(int i=1;i<=n;i++) cin>>t[i].p;
if(n==1) return cout<<t[1].id<<" "<<t[1].s,0;
while(n!=1)
{
sort(t+1,t+1+n,cmp);
n -= n/2;
for(int i=1;i<=min(10,n);i++) t[i].s += r;
if(n == 1)
{
return cout<<t[1].id<<" "<<t[1].s,0;
}
if(n>=6) t[1].s -= l,t[2].s -= l,t[3].s -= l;
for(int i=1;i<=n;i++) t[i].s += t[i].p;
}
}
内容总结
以上是互联网集市为您收集整理的2020浙江工业大学程序设计迎新赛——决赛(重现赛)A 超级卷王全部内容,希望文章能够帮你解决2020浙江工业大学程序设计迎新赛——决赛(重现赛)A 超级卷王所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。