当前位置:网站首页>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完成线性回归
- JS cross browser parsing XML application
- Linux server development, MySQL cache strategy
- 漏洞复现-Fastjson 反序列化
- 快解析内网穿透助力外贸管理行业应对多种挑战
- OpenVSCode云端IDE加入Rainbond一体化开发体系
- ROS Bridge 笔记(05)— carla_ackermann_control 功能包(将Ackermann messages 转化为 CarlaEgoVehicleControl 消息)
- Introduction à l'objet blob
- Network learning (III) -- highly concurrent socket programming (epoll)
- Fast parsing intranet penetration escorts the document encryption industry
猜你喜欢

Quickly use Jacobo code coverage statistics

The charm of SQL optimization! From 30248s to 0.001s

Avatary的LiveDriver试用体验

Application of slip ring of shipborne radar antenna

What is the function of paralleling a capacitor on the feedback resistance of the operational amplifier circuit

数据库实时同步利器——CDC(变化数据捕获技术)

【数字IC验证快速入门】14、SystemVerilog学习之基本语法1(数组、队列、结构体、枚举、字符串...内含实践练习)

Explore dry goods! Apifox construction ideas

Force buckle 144 Preorder traversal of binary tree

Introduction to basic components of wechat applet
随机推荐
Binary tree and heap building in C language
Explore dry goods! Apifox construction ideas
JS复制图片到剪切板 读取剪切板
LeetCode简单题之判断一个数的数字计数是否等于数位的值
buureservewp(2)
Register of assembly language by Wang Shuang
Linux server development, MySQL cache strategy
Thinkcmf6.0 installation tutorial
【数字IC验证快速入门】12、SystemVerilog TestBench(SVTB)入门
Hisense TV starts the developer mode
漏洞复现-Fastjson 反序列化
藏书馆App基于Rainbond实现云原生DevOps的实践
在Rainbond中一键部署高可用 EMQX 集群
[quickstart to Digital IC Validation] 15. Basic syntax for SystemVerilog Learning 2 (operator, type conversion, loop, Task / Function... Including practical exercises)
漏洞复现-easy_tornado
Rainbond结合NeuVector实践容器安全管理
Linux Installation MySQL 8.0 configuration
Qinglong panel - today's headlines
ZCMU--1492: Problem D(C语言)
Find the mode in the binary search tree (use medium order traversal as an ordered array)