zoukankan      html  css  js  c++  java
  • zzulioj--1705--小明在工作(模拟水题)

    1705: 小明在工作

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 179  Solved: 59

    SubmitStatusWeb Board

    Description

    小明的工作是负责记录饭堂中正在排队的人的信息
    在他的工作中会有三种可能的事件发生:
        1.编号为id的学生加入到队伍的最后面
        2.排在最前面的学生打完饭离开了队伍
        3.老板过来询问当前排在队伍前方第k个的学生的编号
    由于每天的工作量太大(每天最多有100000个以上事件发生),
    小明苦不堪言,让你写个程序帮他

    Input

    输入的第一个数是正整数T,表明接下来有T组数据 
    每组数据的第一个数为正整数n,表示有n件事会发生 
    接下来有n行,每行分别表示上诉三种事件的其中一种,格式分别如下: 
    1 id 

    3 k 
    注意当队伍中已经没人的时候请忽略第2种事件,每组数据新开始的时候队伍中人数都为0

    Output

    对于给个第3种的事件,请输出第k个学生的编号, 
    如果队伍的人数小于k,输出“na li you zhe me duo ren”。

    Sample Input

    251 11 23 123 121 13 2

    Sample Output

    12na li you zhe me duo ren

    HINT


    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int num[100100];
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		int n;
    		scanf("%d",&n);
    		int k=0,s=0,q;//num表示队列,s,k分别为队首和队尾 
    		memset(num,0,sizeof(num));
    		while(n--)
    		{
    			int id;
    			scanf("%d",&id);
    			if(id==1)
    			scanf("%d",&num[++k]);
    			else if(id==2)
    			{
    				if(s<k)
    				s++;//没有人的时候s不加,因为这个哇了一次 
    			}
    			else if(id==3)
    			{
    				scanf("%d",&q);
    				if(s+q<=k)
    				printf("%d
    ",num[s+q]);
    				else
    				printf("na li you zhe me duo ren
    ");
    			}
    		}
    	}
    	return 0;
    }


  • 相关阅读:
    中金所期货(future)指数
    Nginx负载均衡算法之四
    WSGI协议
    Flask 响应之定制全局有效的错误页面,之设置cookie,头信息。
    Python数据结构之栈,队列和堆
    三、Oracle 游标、存储过程、存储函数、触发器
    二、Oracle的结构学习
    一、Oracle的SQL语句学习
    oracle中的修改表结构
    eclipse编写xml文件时类名的自动补全(使用sts插件)
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273584.html
Copyright © 2011-2022 走看看