http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=224#problem/B
Description
BUG is a famous burger shop. Lots of costumers wait for burgers outside the burger every morning, because those hamburgers are so unforgettable.
Costumers stand in a queue, they come one by one, the latest one join into the end.
When a costumer(A) come to the end of the queue, if there’s already someone(B), wearing the same color as him, people between them(including A and B, called Hamburger String) will be served.
Served people leave the queue immediately.
N people come one by one, given their colors, can you tell me how many Hamburger Strings are there?
Input
The first line is an integer T(T<=100).
Each case has an integer N(N<=100) in the first line.
Then N positive integers(<=20) follow, each corresponds a kind of color.
1 for red, 2 for yellow, and so on.
Output
For each case output a single integer, indicating the number of Hamburger Strings are served.
Sample Input
Sample Output
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int T,N,a[150],i,j,k,b[150],count;
scanf("%d",&T);
while (T--)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
count=0;
scanf("%d",&N);
for (i=0;i<N;i++)
{
scanf("%d",a+i);
b[i]=a[i];
for (j=0;j<i;j++)
{
if (a[i]==b[j])
{
for (k=j;k<=i;k++)
{
a[k]=-1;
b[k]=-1;
}
count++;
break;
}
}
}
printf("%d\n",count);
}
return 0;
}