12100 - Printer Queue

来源:互联网 发布:尼康大竹炮数据 编辑:程序博客网 时间:2024/05/11 05:30

很简单的题。。。只要想到用list,一切轻松搞定,第一次用list,感觉针对某些题,还是很好用的~~~


#include<cstdio>

#include<string>
#include<iostream>
#include<algorithm>
#include<list>
#include<queue>
using namespace std;
list<int >q;
int main()
{
   int T;
   scanf("%d",&T);
   while(T--){
    int n,m;
    scanf("%d%d",&n,&m);
    int t;
    for(int i=0;i<n;i++){
        scanf("%d",&t);
        q.push_back(t);
    }
   // list<int>::iterator it=q.begin();
    int maxn=0;
    while(1){
            int ans=0;
        for(list<int>::iterator it=q.begin();it!=q.end();it++){
            if(*it>q.front()){
                q.push_back(q.front());
                q.pop_front();
                ans++;
                if(m==0)
                    m=n-1;
                else  m--;
                break;
            }
        }
        if(ans==0){
              //  printf("%d\n",m);
            if(m==0){
                maxn++;break;
            }
            else{
                q.pop_front();
                maxn++;
                n--;m--;
            }
        }
    }
    q.clear();
    printf("%d\n",maxn);
   }
   return 0;
}
0 0
原创粉丝点击