当前位置:网站首页>POJ - 3784 running medium
POJ - 3784 running medium
2022-07-07 08:31:00 【WA_ automata】
POJ - 3784 Running Median( To the top pile )
Description
For this problem, you will write a program that reads in a sequence of 32-bit signed integers. After each odd-indexed value is read, output the median (middle value) of the elements received so far.
Input
The first line of input contains a single integer P, (1 ≤ P ≤ 1000), which is the number of data sets that follow. The first line of each data set contains the data set number, followed by a space, followed by an odd decimal integer M, (1 ≤ M ≤ 9999), giving the total number of signed integers to be processed. The remaining line(s) in the dataset consists of the values, 10 per line, separated by a single space. The last line in the dataset may contain less than 10 values.
Output
For each data set the first line of output contains the data set number, a single space and the number of medians output (which should be one-half the number of input values plus one). The output medians will be on the following lines, 10 per line separated by a single space. The last line may have less than 10 elements, but at least 1 element. There should be no blank lines in the output.
Sample Input
3
1 9
1 2 3 4 5 6 7 8 9
2 9
9 8 7 6 5 4 3 2 1
3 23
23 41 13 22 -3 24 -31 -11 -8 -7
3 5 103 211 -311 -45 -67 -73 -81 -99
-33 24 56
Sample Output
1 5
1 2 3 4 5
2 5
9 8 7 6 5
3 12
23 23 22 22 13 3 5 5 3 -3
-7 -3
Open two stacks , One is big root pile , One is the small root pile , Then those less than the median are put in the big root pile , Those larger than the median are put in the small root pile , if , The number of a heap is greater than that of the current sequence 1 2 \frac{1}{2} 21, Then move the extra number , Until the number of two heaps is equal .
#include<cstdio>
#include<vector>
#include<queue>
using namespace std;
int main()
{
int T;scanf("%d",&T);
while(T--)
{
int m,n;scanf("%d%d",&m,&n);
priority_queue<int> max_heap;
priority_queue<int,vector<int>,greater<int> > min_heap;
printf("%d %d\n",m,(n+1)/2);
int cnt=0;
for(int i=0;i<n;i++)
{
int t;scanf("%d",&t);
max_heap.push(t);
if(min_heap.size() && min_heap.top() < max_heap.top())
{
int a=min_heap.top(),b=max_heap.top();
min_heap.pop(),max_heap.pop();
min_heap.push(b),max_heap.push(a);
}
if(max_heap.size()>min_heap.size()+1)
{
min_heap.push(max_heap.top());
max_heap.pop();
}
if(i%2==0)
{
printf("%d ",max_heap.top());
if(++cnt%10==0) puts("");
}
}
if(cnt%10) puts("");
}
return 0;
}
边栏推荐
- A single game with goods increased by 100000, and the rural anchor sold men's clothes on top of the list?
- JEditableTable的使用技巧
- 如何理解分布式架构和微服务架构呢
- 在Rainbond中一键部署高可用 EMQX 集群
- BiSeNet的特点
- GOLand idea intellij 无法输入汉字
- Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
- Four items that should be included in the management system of integral mall
- One click installation of highly available Nacos clusters in rainbow
- Vulnerability recurrence easy_ tornado
猜你喜欢

The field value in Splunk subquery fuzzy matching CSV is*

Opencv learning note 4 - expansion / corrosion / open operation / close operation

提高企业产品交付效率系列(1)—— 企业应用一键安装和升级

Famine cloud service management script

Give full play to the wide practicality of maker education space

Rsync remote synchronization

Opencv learning notes 1 -- several methods of reading images

opencv学习笔记五——梯度计算/边缘检测

Splunk子查询模糊匹配csv中字段值为*

Merge sort and non comparison sort
随机推荐
Coquette data completes the cloud native transformation through rainbow to realize offline continuous delivery to customers
解析机器人科技发展观对社会研究论
[quick start of Digital IC Verification] 13. SystemVerilog interface and program learning
In go language, function is a type
JS copy picture to clipboard read clipboard
Merge sort and non comparison sort
Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
国标GB28181协议视频平台EasyGBS新增拉流超时配置
MES系統,是企業生產的必要選擇
Basic use of CTF web shrink template injection nmap
[IELTS speaking] Anna's oral learning records Part3
Snyk dependency security vulnerability scanning tool
Practice of implementing cloud native Devops based on rainbow library app
字符串操作
【雅思口语】安娜口语学习记录 Part2
【无标题】
Pvtv2--pyramid vision transformer V2 learning notes
Rainbow 5.7.1 supports docking with multiple public clouds and clusters for abnormal alarms
Input of mathematical formula of obsidan
Rainbond 5.6 版本发布,增加多种安装方式,优化拓扑图操作体验