poj3125

/*水题,模拟排队*/
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=10000;
struct point
{
 int index;
 int i;
}p[maxn];
int main()
{
 int i,j,k,n,m;
 int t;
 scanf("%d",&t);
 while(t--)
 {
  scanf("%d%d",&n,&m);
  for(i=0;i<=10000;i++)
  {
   p[i].index=0;
   p[i].i=0;
  }
  for(i=0;i<n;i++)
  {
   scanf("%d",&p[i].index);
   p[i].i=i;
  }
        /*for(i=0;i<n;i++)
  {
   printf("%d %d ",p[i].i,p[i].index);
  }*/
  int sum=0;
  int num=n;
  for(i=0;i<n*n;i++)
  {
   int flag=1;
   for(j=i+1;j<n*n;j++)
   {
    if(p[i].index<p[j].index && p[i].index!=0)
    {
     flag=0;
     p[num].index=p[i].index;
     p[num++].i=p[i].i;
     break;
    }
   }
   if(j==n*n && flag==1)
   {
    //printf("%d %d ",p[i].i,p[i].index);
    p[i].index=0;
    sum++;
      if(p[i].i==m) break;
       
   }
  }
  printf("%d ",sum);
 }
 return 0;
}

原文地址:https://www.cnblogs.com/okboy/p/3223425.html