一个国家如果要与n国家建立外交关系,就需要n块土地建立大使馆,除去大使馆所占的土地自己必须至少有一块土地自己用。
排序从大到小,当大使馆所占用土地等于自身有的土地减去至少一块保留土地,即结束
```#include<stdio.h>
#include<stdlib.h>
int cmp (const void *a,const void *b)
{
return *(int*)b-*(int*)a;
}
int main ()
{
int n,t;
int a=0,b=0;
int i,j,k;
int count=0;
scanf("%d",&n);
for(i=0;i<n;i++)//n组数据
{
count=0;//每组数据计数更新
int kk[1000]={0};
scanf("%d",&t);
for(j=0;j<t;j++)//t个数
{
scanf("%d",&kk[j]);
}
qsort(kk,t,sizeof(int),cmp);
for(k=0;k<t;k++)
{
if(kk[k]>count)
{
count++;
}
else
{
break;
}
}
printf("%d\n",count);
}
return 0;
}