一个国家如果要与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;
}