三種獎牌中,每一種都必須至少頒發一枚獎牌(即g>0、s>0和b>0);
金牌數必須嚴格小於銀牌數和銅牌數(即g<s和g<b,但s和b之間沒有要求);
每一個金牌獲得者都必須比任何一個銀牌獲得者更嚴格地解決問題;
每一個銀牌獲得者都必須比任何一個銅牌獲得者更嚴格地解決問題;
每位銅牌獲得者必須比任何未獲得獎牌的參與者更嚴格地解決問題;
獎牌獲得者g+s+b的總數不應超過所有參賽者的一半(例如,如果n=21,則最多可獎勵10名參賽者;如果n=26,則最多可獎勵13名參賽者)
int n,m,t;
int i,j,k;
int a[N];
map<int,int> mp;
int main()
{
//IOS;
rush(){
sd(n); mp.clear();
for(i=1;i<=n;i++){ sd(a[i]); mp[a[i]]++;}
int x=0,y=0,z=0,pos;
if(n<10){ pddd(x,y,z); continue;}
x=mp[a[1]];
pos=x+1;
y=x;//保證銀牌比金牌多
pos=x+y+1;
for(i=pos;i<=n;i++){
if(a[pos]==a[i]) y++;
}
z=n/2-x-y;
if(z<=0){ pddd(0,0,0); continue; }
else{
pos=n/2;
if(a[pos]==a[pos+1])
{
int num=0;
for(i=pos;i>=1;i--)
if(a[pos]==a[i]) num++;
z-=num;
}
if(z<=0||z<=x) pddd(0,0,0);//銅牌比金牌多
else pddd(x,y,z);
}
}
return 0;
}