İşıqforlar#993

İşıqforlar (Həll təhlili)

Perekrəstklər və tunellər sistemi təbii şəkildə bir qraf təyin edir: perekrəstklər təpələr, tunellər isə tillərdir. Tunellər ikitərəfli olduğundan, qraf istiqamətləndirilməmişdir.

-cı perekrəstdə quraşdırılan svetoforların sayı təpəsinin dərəcəsinə, yəni bu perekrəstə insident olan tunellərin sayına bərabərdir.

massivini təşkil edək, burada — -cı perekrəstə bitişik tunellərin sayıdır. Onda hər bir istiqamətləndirilməmiş tili üçün və qiymətlərini bir vahid artırmaq lazımdır.

Nümunə

Nümunədə verilmiş qraf aşağıdakı şəkildədir:

Alqoritmin realizasiyası

Tunellər haqqında məlumatı saxlayacağımız massivini elan edək.

#define MAX 110
int ton[MAX];

Giriş məlumatlarını oxuyuruq. Hər bir tuneli ardıcıl olaraq emal edərək, qrafın müvafiq təpələrinin dərəcələrini artırırıq.

scanf("%d %d",&n,&m);
memset(ton,0,sizeof(ton));
for (i = 0; i < m; i++)
{
  scanf("%d %d",&a,&b);
  ton[a]++; ton[b]++;
}

Hər bir perekrəstdə lazım olan svetoforların sayını çap edirik.

for (i = 1; i <= n; i++)
  printf("%d ",ton[i]);
printf("\n");