# include<stdio.h>
# include<algorithm>
# include<string.h>
# include<iostream>
using namespace std;
struct node
{
int d;
int num;
};
struct node a[15];
bool cmp(node a1,node a2)
{
return a1.d>a2.d;
}
int main()
{
int map[15][15];
int t,i,j,n;
while(~scanf("%d",&t))
{
while(t--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i].d);
a[i].num=i;
}
memset(map,0,sizeof(map));
sort(a,a+n,cmp);
while(a[0].d&&a[n-1].d>=0)
{
i=1;
while(a[0].d--)
{
map[a[0].num][a[i].num]=1;
map[a[i].num][a[0].num]=1;
--a[i++].d;
}
a[0].d=0;
sort(a,a+n,cmp);
}
if(a[n-1].d<0)
printf("NO\n");
else
{
printf("YES\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==n-1)
printf("%d\n",map[i][j]);
else
printf("%d ",map[i][j]);
}
}
}
if(t)
printf("\n");
}
}
return 0;
}
poj 1659 Frogs' Neighborhood (判断简单图并输出)
最新推荐文章于 2018-08-04 14:31:58 发布