Hər bir təpəsi üçün onunla qonşu olan təpələrin sayını hesablayaq. Əgər bu say -ə bərabərdirsə, onda təpəsi asma təpədir.
Nümunə
Misallarda verilən qraflar aşağıdakı görünüşə malikdir:
Birinci misalda qraf dərəcəli iki təpə saxlayır. Deməli, orada iki asma təpə var.
İkinci misalda dərəcəli (asma) təpələr yoxdur.
Alqoritmin realizasiyası
massivini elan edək, burada — təpəsi ilə qonşu olan təpələrin sayıdır.
#define MAX 1010
int m[MAX];Qonşuluq (istiqamətlənməmiş qraf) matrisini oxuyuruq. Hər bir tili üçün -nin qiymətini artırırıq (-nin qiyməti isə tili nəzərdən keçirildikdə artacaq).
scanf("%d",",n);
memset(m,0,sizeof(m));
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
scanf("%d",",val);
if (val) m[i]++;
}Əgər m[i] = 1-dirsə, onda təpəsi düz bir təpə ilə birləşib, yəni asma təpədir. Bu cür təpələrin sayını hesablayır və nəticəni dəyişənində saxlayırıq.
res = 0;
for (i = 0; i < n; i++)
if (m[i] == 1) res++;Cavabı çap edirik.
printf("%d\n",res);