当前位置:网站首页>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;
}
边栏推荐
- Unityhub cracking & unity cracking
- Blob 對象介紹
- 漏洞複現-Fastjson 反序列化
- 【數字IC驗證快速入門】15、SystemVerilog學習之基本語法2(操作符、類型轉換、循環、Task/Function...內含實踐練習)
- Dedecms collects content without writing rules
- LeetCode简单题之字符串中最大的 3 位相同数字
- 【数字IC验证快速入门】13、SystemVerilog interface 和 program 学习
- offer收割机:两个长字符串数字相加求和(经典面试算法题)
- buureservewp(2)
- Qinglong panel -- Huahua reading
猜你喜欢
漏洞複現-Fastjson 反序列化
在Rainbond中一键部署高可用 EMQX 集群
Application of slip ring of shipborne radar antenna
uniapp 移动端强制更新功能
JS quick start (I)
Game attack and defense world reverse
Main window in QT learning 27 application
Use of JMeter
Vulnerability recurrence fastjson deserialization
【数字IC验证快速入门】12、SystemVerilog TestBench(SVTB)入门
随机推荐
Network learning (I) -- basic model learning
UnityHub破解&Unity破解
OpenVSCode云端IDE加入Rainbond一体化开发体系
Network learning (II) -- Introduction to socket
【踩坑系列】uniapp之h5 跨域的问题
Complex network modeling (I)
云原生存储解决方案Rook-Ceph与Rainbond结合的实践
Roulette chart 2 - writing of roulette chart code
LeetCode简单题之字符串中最大的 3 位相同数字
Thinkcmf6.0 installation tutorial
青龙面板--花花阅读
Avatary's livedriver trial experience
[quickstart to Digital IC Validation] 15. Basic syntax for SystemVerilog Learning 2 (operator, type conversion, loop, Task / Function... Including practical exercises)
buureservewp(2)
【数字IC验证快速入门】10、Verilog RTL设计必会的FIFO
buureservewp(2)
Linux server development, MySQL transaction principle analysis
[matlab] when matrix multiplication in Simulink user-defined function does not work properly, matrix multiplication module in module library can be used instead
LeetCode简单题之找到一个数字的 K 美丽值
Bayes' law