当前位置:网站首页>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;
}边栏推荐
- 【无标题】
- Linux server development, MySQL cache strategy
- Force buckle 144 Preorder traversal of binary tree
- 在Rainbond中一键部署高可用 EMQX 集群
- Linux Installation MySQL 8.0 configuration
- WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after conne
- 【数字IC验证快速入门】12、SystemVerilog TestBench(SVTB)入门
- Chip design data download
- Vulnerability recurrence easy_ tornado
- 海信电视开启开发者模式
猜你喜欢

Interactive book delivery - signed version of Oracle DBA work notes

Rainbond 5.7.1 支持对接多家公有云和集群异常报警

Basic use of CTF web shrink template injection nmap

Avatary's livedriver trial experience

船载雷达天线滑环的使用

The largest 3 same digits in the string of leetcode simple question

漏洞复现-Fastjson 反序列化

eBPF Cilium实战(1) - 基于团队的网络隔离

Linux server development, detailed explanation of redis related commands and their principles

Vulnerability recurrence easy_ tornado
随机推荐
LeetCode简单题之找到一个数字的 K 美丽值
Real time monitoring of dog walking and rope pulling AI recognition helps smart city
拓维信息使用 Rainbond 的云原生落地实践
Topic not received? Try this
jeeSite 表单页面的Excel 导入功能
Zsh shell adds automatic completion and syntax highlighting
[quickstart to Digital IC Validation] 15. Basic syntax for SystemVerilog Learning 2 (operator, type conversion, loop, Task / Function... Including practical exercises)
使用 Nocalhost 开发 Rainbond 上的微服务应用
Interactive book delivery - signed version of Oracle DBA work notes
积分商城管理系统中应包含的四大项
提高企业产品交付效率系列(1)—— 企业应用一键安装和升级
Linux Installation MySQL 8.0 configuration
Network learning (I) -- basic model learning
复杂网络建模(二)
Network learning (II) -- Introduction to socket
漏洞複現-Fastjson 反序列化
uniapp 移动端强制更新功能
buureservewp(2)
追风赶月莫停留,平芜尽处是春山
CTF-WEB shrine模板注入nmap的基本使用