본문 바로가기

알고스팟 풀이/알고스팟 소스

11. ORIVIRUS

11. ORIVIRUS 소스 코드.

#include <stdio.h>

int a[110][110], data[110], chk[110], chk2[110];
int n;

int main()
{
int testcase, x, y, edge;
int i, j, k, cnt;

scanf("%d", &testcase);

while(testcase >= 1)
{
--testcase;
scanf("%d", &n);
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
scanf("%d", &x);
if(x==1)
{
a[i][0]++;
a[i][a[i][0]]=j;
}
}
}

scanf("%d", &edge);
for(i=1; i<=edge; i++)
{
scanf("%d %d", &x, &y);
data[1]=x; data[2]=y; cnt=2;
chk2[x]=chk2[y]=1;
for(j=1; j<=cnt; j++)
{
for(k=1; k<=a[data[j]][0]; k++)
{
chk[a[data[j]][k]]++;
if(chk[a[data[j]][k]]==2 && !chk2[a[data[j]][k]])
{
data[++cnt]=a[data[j]][k];
chk2[a[data[j]][k]]=1;
}
}
}
printf("%d ", cnt);
for(j=1; j<=n; j++) data[j]=chk2[j]=chk[j]=0;

}
for(i=1; i<=n; i++) a[i][0]=0;
printf("\n");
}


return 0;
}


'알고스팟 풀이 > 알고스팟 소스' 카테고리의 다른 글

12. STARCRAFT  (0) 2015.06.24
13. FESTIVAL  (0) 2015.06.24
14. TRIANGLEPATH  (0) 2015.06.24
15. LIS  (0) 2015.06.24