当前位置:网站首页>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;
}边栏推荐
- 调用 pytorch API完成线性回归
- LeetCode简单题之字符串中最大的 3 位相同数字
- 青龙面板-今日头条
- 快解析内网穿透为文档加密行业保驾护航
- Codeforce c.strange test and acwing
- Lattice coloring - matrix fast power optimized shape pressure DP
- buureservewp(2)
- Game attack and defense world reverse
- Force buckle 144 Preorder traversal of binary tree
- Leetcode 187 Repeated DNA sequence (2022.07.06)
猜你喜欢

eBPF Cilium实战(2) - 底层网络可观测性

Hisense TV starts the developer mode

Niu Mei's mathematical problem --- combinatorial number

Avatary的LiveDriver试用体验

Unityhub cracking & unity cracking

UnityHub破解&Unity破解

OpenVSCode云端IDE加入Rainbond一体化开发体系

Bugku CTF daily one question chessboard with only black chess

Real time monitoring of dog walking and rope pulling AI recognition helps smart city

【踩坑系列】uniapp之h5 跨域的问题
随机推荐
让Livelink初始Pose与动捕演员一致
追风赶月莫停留,平芜尽处是春山
Example of file segmentation
提高企业产品交付效率系列(1)—— 企业应用一键安装和升级
Network learning (I) -- basic model learning
buureservewp(2)
Qinglong panel -- finishing usable scripts
数据库实时同步利器——CDC(变化数据捕获技术)
Rainbond结合NeuVector实践容器安全管理
Rainbond 5.7.1 支持对接多家公有云和集群异常报警
Linux server development, MySQL index principle and optimization
【数字IC验证快速入门】13、SystemVerilog interface 和 program 学习
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
2022 Inner Mongolia latest advanced fire facility operator simulation examination question bank and answers
云原生存储解决方案Rook-Ceph与Rainbond结合的实践
Complete linear regression manually based on pytoch framework
在 Rainbond 中一键安装高可用 Nacos 集群
Recursive method to construct binary tree from preorder and inorder traversal sequence
【数字IC验证快速入门】17、SystemVerilog学习之基本语法4(随机化Randomization)
【数字IC验证快速入门】15、SystemVerilog学习之基本语法2(操作符、类型转换、循环、Task/Function...内含实践练习)