当前位置:网站首页>Zcmu--1396: queue problem (2)
Zcmu--1396: queue problem (2)
2022-07-07 08:11:00 【Little why】
Description
One of them contains n Queues of elements q, The size of each element meets 1<=xi<=9(0<i<n). Queue has an operation , For the first element of the queue, if the whole queue is the largest, it will be out of the queue , Or join the tail of the team . For a given m, Can you tell me xm Is it the first one out of the queue ?
Input
The first line of input data is an integer T(1<=T<=1000), Represents the number of groups of input data ; The first row of each group of data is two positive integers n Represents the size of the queue and the number of elements (1<n<=1000,0<=m<n), The second line has n Number xi , Represent the size of each element respectively .
Output
For each group of test data , Output xm Is the number of queues .
Sample Input
3
1 0
5
4 2
1 2 3 4
6 0
1 1 9 1 1 1
Sample Output
1
2
5
analysis : We make use of set To quickly get the maximum element value in the current queue , Because there are elements that repeat , So we have to use multiset Come and save . We can use structures to store elements id and valu value ,c Indicates the number of out of line , If a[ i ]==st.*rbegin() Express a[ i ] Is the largest element in the current queue , List out , If it is xm, Then output c that will do , On the contrary, it is not the maximum , At the end of the team , Corresponding multiset Also delete this element in , So repeatedly until xm List out .
#include <stdio.h>
#include <set>
using namespace std;
struct su
{
int id;
int v;
}a[10005];
int main()
{
int t,i,n,k,c;
scanf("%d",&t);
while(t--){
multiset<int>st; // establish multiset
scanf("%d%d",&n,&k);
c=1; // Indicates the number of out of line
for(i=0;i<n;i++){
scanf("%d",&a[i].v);
a[i].id=i;
st.insert(a[i].v); // Deposit in set
}
for(i=0;i<n;i++){
if(a[i].v==*st.rbegin()){ // Indicates the maximum value of the current queue
if(a[i].id==k){ // just xm
printf("%d\n",c);
break;
}else st.erase(--st.end()),c++; // Delete the last element , That's the maximum
}else{ // Not the maximum , Simulation to the end of the team
a[n].v=a[i].v;
a[n++].id=a[i].id;
}
}
st.clear();
}
return 0;
}
边栏推荐
- Game attack and defense world reverse
- LeetCode中等题之我的日程安排表 I
- Unityhub cracking & unity cracking
- Leetcode medium question my schedule I
- Real time monitoring of dog walking and rope pulling AI recognition helps smart city
- Roulette chart 2 - writing of roulette chart code
- 2022 Inner Mongolia latest advanced fire facility operator simulation examination question bank and answers
- OpenVSCode云端IDE加入Rainbond一体化开发体系
- Lattice coloring - matrix fast power optimized shape pressure DP
- Rainbond 5.6 版本发布,增加多种安装方式,优化拓扑图操作体验
猜你喜欢
轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷
Game attack and defense world reverse
Vulnerability recurrence fastjson deserialization
互动送书-《Oracle DBA工作笔记》签名版
Register of assembly language by Wang Shuang
Yugu p1020 missile interception (binary search)
Network learning (III) -- highly concurrent socket programming (epoll)
Avatary的LiveDriver试用体验
Use of JMeter
运放电路的反馈电阻上并联一个电容是什么作用
随机推荐
eBPF Cilium实战(2) - 底层网络可观测性
Paddlepaddle 29 dynamically modify the network structure without model definition code (relu changes to prelu, conv2d changes to conv3d, 2D semantic segmentation model changes to 3D semantic segmentat
LeetCode中等题之我的日程安排表 I
Introduction to basic components of wechat applet
【数字IC验证快速入门】14、SystemVerilog学习之基本语法1(数组、队列、结构体、枚举、字符串...内含实践练习)
Leetcode 187 Repeated DNA sequence (2022.07.06)
Dedecms collects content without writing rules
Openjudge noi 2.1 1752: chicken and rabbit in the same cage
央视太暖心了,手把手教你写HR最喜欢的简历
Rainbond 5.7.1 支持对接多家公有云和集群异常报警
青龙面板--整理能用脚本
Leetcode medium question my schedule I
【数字IC验证快速入门】17、SystemVerilog学习之基本语法4(随机化Randomization)
Network learning (II) -- Introduction to socket
在 Rainbond 中一键安装高可用 Nacos 集群
Avatary的LiveDriver试用体验
Uniapp mobile terminal forced update function
电池、电机技术受到很大关注,反而电控技术却很少被提及?
Vulnerability recurrence easy_ tornado
Blob object introduction