К бојење

време меморија улаз излаз
0,15 s 64 Mb стандардни излаз стандардни улаз

Потребно је распоредити променљиве у регистре процесора. При том, је познато да неке променљиве не смеју да буду смештене у исти регистар (јер се користе истовремено). Написати програм који одређује најмањи број регистара потребан да се сместе све променљиве. На пример, у коду

x = a + b; y = x * b; return y;

Променљиве a и b као и променљиве x и b не смеју бити смештене у исти регистар. Могуће је употребити само два регистра. Прво се у регистар 1 смешта променљива a, а у регистар 2 променљива b. Након тога се вредност променљиве x смешта у регистар 1 (јер вредност променљиве a није надаље потребна). Након тога се вредност променљиве y може сместити било у регистар 1, било у регистар 2, јер надаље нису потребни ни вредност променљиве x ни вредност променљиве b. Једноставности ради претпоставити да је граф сачињен од променљивих и од ограничења између њих повезан.

Улаз

Са стандардног улаза се уноси број променљивих \(n\) (\(1 \leq n \leq 50\)). Након тога се до краја улаза уносе парови променљивих које не смеју да се сместе у исте регистре (променљиве се броје од \(0\) до \(n-1\)).

Излаз

На стандардни излаз исписати најмањи број регистара потребних да се све променљиве сместе.

Пример

Улаз

6 0 1 0 2 1 2 1 4 1 5 2 3 3 4 3 5 4 5

Излаз

3

Морате бити улоговани како бисте послали задатак на евалуацију.