当前位置:网站首页>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;
}
边栏推荐
- Empire CMS collection Empire template program general
- 数据库实时同步利器——CDC(变化数据捕获技术)
- 互动送书-《Oracle DBA工作笔记》签名版
- 【数字IC验证快速入门】17、SystemVerilog学习之基本语法4(随机化Randomization)
- Who has docker to install MySQL locally?
- Blob 對象介紹
- 【踩坑系列】uniapp之h5 跨域的问题
- Avatary's livedriver trial experience
- Complex network modeling (III)
- 【数字IC验证快速入门】10、Verilog RTL设计必会的FIFO
猜你喜欢
柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户
buureservewp(2)
Padavan manually installs PHP
Linux server development, detailed explanation of redis related commands and their principles
Avatary的LiveDriver试用体验
JS quick start (I)
Complex network modeling (I)
云原生存储解决方案Rook-Ceph与Rainbond结合的实践
Record a stroke skin bone error of the skirt
Leetcode medium question my schedule I
随机推荐
JS cross browser parsing XML application
Blob 对象介绍
buureservewp(2)
jeeSite 表单页面的Excel 导入功能
漏洞复现-easy_tornado
【数字IC验证快速入门】10、Verilog RTL设计必会的FIFO
提高企业产品交付效率系列(1)—— 企业应用一键安装和升级
【无标题】
[quickstart to Digital IC Validation] 15. Basic syntax for SystemVerilog Learning 2 (operator, type conversion, loop, Task / Function... Including practical exercises)
Qinglong panel - today's headlines
贝叶斯定律
LeetCode简单题之字符串中最大的 3 位相同数字
Call pytorch API to complete linear regression
太真实了,原来自己一直没有富裕起来是有原因的
Recursive construction of maximum binary tree
Leetcode medium question my schedule I
Téléchargement des données de conception des puces
Qinglong panel -- finishing usable scripts
B. Value sequence thinking
What is the function of paralleling a capacitor on the feedback resistance of the operational amplifier circuit