#include<bits/stdc++.h>
using namespace std;
int a[100001];
double ave[100001];
struct student{
int i;
double ave;
};
student stu[100001]; bool cmp(const student &s1,const student &s2){
if(s1.ave==s2.ave){
return s1.i<s2.i;
}else{
return s1.ave>s2.ave;
}
} int main(){
priority_queue<int,vector<int>,greater<int> > q;
int n;
while(cin>>n){
memset(stu,0,sizeof(student)*n);
memset(a,0,sizeof(a));
memset(ave,0,sizeof(ave));
for(int i=0;i<n;++i){
scanf("%d",&a[i]);
}
double s=0;
for(int i=n-1;i>0;i--){
if(i!=n-1){
if(a[i]<q.top()){ //如果这个数比队列中最小的值还小,算平均值的时候先没放进队列
int ss=q.size();
ave[i]=s*1.0/ss;
stu[i].ave=ave[i];
stu[i].i=i;
q.push(a[i]); //最后再放进队列
}else{ //如果这个数比队列中最小的值大
q.push(a[i]); //把这个数放进队列
int x=q.top();
q.pop(); //把队列中最小的值弹出
int ss=q.size();
ave[i]=(s+a[i]-x)*1.0/ss; //算出平均值
stu[i].ave=ave[i];
stu[i].i=i;
q.push(x); //最后把最小的值压回去队列
}
}else{
q.push(a[i]);
ave[i]=a[i];
stu[i].ave=ave[i];
stu[i].i=i;
}
s+=a[i];
//printf("%d %.2f\n",stu[i].i,stu[i].ave);
}
sort(stu,stu+n,cmp);
cout<<stu[0].i;
for(int i=1;i<n;++i){
if(stu[i].ave==stu[0].ave&&stu[i].i<=n-2){
cout<<" "<<stu[i].i;
}else{
break;
}
}
while(!q.empty()){
q.pop();
}
cout<<endl;
}
}

6127:Largest Average的更多相关文章

  1. LeetCode之“排序”:Largest Number

    题目链接 题目要求: Given a list of non negative integers, arrange them such that they form the largest numbe ...

  2. Leetcode:Largest Number详细题解

    题目 Given a list of non negative integers, arrange them such that they form the largest number. For e ...

  3. LeetCode第[84]题(Java):Largest Rectangle in Histogram(最大的矩形柱状图)

    题目:最大的矩形柱状图 难度:hard 题目内容: Given n non-negative integers representing the histogram's bar height wher ...

  4. LeetCode OJ:Largest Number(最大数字)

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  5. HDU 5461:Largest Point

    Largest Point Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  6. HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1506 刚开始没考虑时间复杂度,直接敲了,直接tle了,之后没有思路,然后看题解,看见大神写的优化非常棒. ...

  7. POJ2559:Largest Rectangle in a Histogram

    浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:http://poj.org/problem?id=2559 贪心的想,最大的子矩阵顶部 ...

  8. AtCoder Grand Contest 009 E:Eternal Average

    题目传送门:https://agc009.contest.atcoder.jp/tasks/agc009_e 题目翻译 纸上写了\(N\)个\(1\)和\(M\)个\(0\),你每次可以选择\(k\) ...

  9. AGC009:Eternal Average

    传送门 好神啊 直接考虑一棵 \(n+m\) 个叶子的 \(k\) 叉树,根结点权值为 \(\sum_{i\in m}(\frac{1}{k})^{deep_i}\) 对于一个 \(deep\) 的序 ...

随机推荐

  1. 震惊!java中日期格式化的大坑!

    前言 我们都知道在java中进行日期格式化使用simpledateformat.通过格式 yyyy-MM-dd 等来进行格式化,但是你知道其中微小的坑吗? yyyy 和 YYYY 示例代码 @Test ...

  2. AI算法测评事项

    前言 注:大概2017年-2018年国内人工智能热度达到顶峰,随后热度开始逐渐减少.2018年前人工智能被投资界.学术界.工业界和媒体炒的特别热,各大企业都想尝试一下深度学习技术在业务场景的应用.试水 ...

  3. 转载-notepad++ zend-coding使用

    转载-notepad++ zend-coding使用   zen-Coding是一款快速编写HTML,CSS(或其他格式化语言)代码的编辑器插件,这个插件可以用缩写方式完成大量重复的编码工作,是web ...

  4. MyBatis中id回填的两种方式

    在一种场景下需要刚刚插入数据的ID,如果数据少可以先看数据库,记下ID,但数据很多,假设一万个用户并发,每个用户都插入自己的ID,就很难记下来. 下面给定一个场景: 1 User user = new ...

  5. Vue 组件内滚动条 滚到到底部

    因为在vue中,某个组件内 使用scrollTop赋值 滚动条没有变化 使用scrollTo 也不行(window.scorllTo 或者dom.scrollTo) 所以可以考虑使用投机取巧的办法: ...

  6. 【MySQL 高级】索引优化分析

    MySQL高级 索引优化分析 SQL 的效率问题 出现性能下降,SQL 执行慢,执行时间长,等待时间长等情况,可能的原因有: 查询语句写的不好 索引失效 单值索引:在 user 表中给 name 属性 ...

  7. 【Linux】扩大swap分区

    今天安装oracle的时候,提示我swap分区过小.需要最少3g以上 但是安装系统了,想要扩大swap分区怎么办呢 下面来介绍如何扩大swap分区 按步骤介绍 Red Hat linux 如何增加sw ...

  8. 使用SimpleUpdater实现现有程序升级功能

    项目:https://github.com/iccfish/FSLib.App.SimpleUpdater C/S程式一般需要部署在多台机器上,如果程式有变动,需要一台一台重新安装,相当麻烦,如果我们 ...

  9. django url别名和反向解析 命名空间

    url别名和反向解析 我们平时写的url名字都是死的,如果项目过大,需要项目中某个文件名改动一下,那么改动起来就不是一般的麻烦了,所以我们就在定义的时候给url起一个别名,以后不管哪个文件中运用都是用 ...

  10. python 字典(formkey 建立 取值 赋值 删除 )

      formkey快速建立空字典   result = {}.fromkeys(['name','age','job'],None) print(result)   #往字典里添加元素 result. ...