Səhm Brokerinin Xəbər Şəbəkəsi#3219

Səhm Brokerinin Xəbər Şəbəkəsi

1 saniyə
64 meqabayt
Orta

Səhm brokerləri şayiələrə qarşı həssaslıq göstərən insanlar kimi tanınır. Sizdən xahiş edilib ki, vacib xəbərlərin və ya məlumatların brokerlər qrupu arasında mümkün olan ən sürətli şəkildə yayılması üsulunu hazırlayasınız.

Təəssüf ki, brokerlər yalnız xəbərləri "etibarlı mənbələrindən" qəbul edirlər. Bu isə o deməkdir ki, siz xəbəri yayarkən onların əlaqə quruluşunu nəzərə almalısınız. Konkret bir brokerin xəbəri öz həmkarlarından hər birinə çatdırması üçün müəyyən qədər vaxt tələb olunur. Sizin vəzifəniz proqram yazmaqdır ki, hansı adamı başlanğıc nöqtəsi kimi seçəcəyinizi və xəbərin hamıya ən qısa müddətdə çatması üçün nə qədər vaxt lazım olduğunu müəyyən etsin. Müddət sonuncu adamın xəbəri aldığı an kimi ölçülür.

Giriş

Proqramınız müxtəlif broker dəstləri üçün məlumatları qəbul edəcək. Hər dəst brokerlərin sayını verən bir sətr ilə başlayır. Bunun ardınca hər broker üçün bir sətr gəlir, burada həmin brokerin neçə nəfərlə əlaqəsi olduğu, onların kimlikləri və hər birinə xəbəri çatdırmaq üçün tələb olunan vaxt göstərilir. Hər broker üçün sətrin formatı belədir: sətrin əvvəlində əlaqələrin sayı () yazılır, onu ədəd tam ədəddən ibarət cütlər izləyir. Hər cütdə birinci rəqəm əlaqədə olan şəxsin nömrəsini (məsələn, "1" bu dəstdəki birinci şəxsi bildirir), ikinci rəqəm isə ona xəbərin neçə dəqiqəyə çatdırıldığını göstərir. Xüsusi durğu işarələri və ya boşluq qaydaları yoxdur.

Çıxış

Hər dəst üçün proqramınız tək bir sətr çıxış verməlidir; həmin sətrdə xəbəri ən sürətli ötürən adamın nömrəsi və bu adamdan xəbəri verdikdən sonra istənilən xəbərin sonuncu adama çatması üçün lazım olan (dəqiqələrlə, tam ədəd kimi) vaxt olmalıdır.

Hər bir şəxs 1-dən brokerlərin sayına qədər nömrələnir. Xəbərin ötürülməsinə sərf olunan vaxt 1 ilə 10 dəqiqə (daxil olmaqla) arasında olacaq və əlaqə sayı 0-dan brokerlərin sayından bir vahid az olana qədər dəyişəcək. Brokerlərin sayı isə 1-dən 100-ə qədər ola bilər. Giriş faylı broker sayı 0 (sıfır) olan bir dəst ilə başa çatır.

Proqramınız əlaqəsi olmayan şəxslər olan bir əlaqə şəbəkəsi (şəbəkə) ilə rastlaşa bilər, yəni bəzi şəxslər əlçatmaza ola bilər. Əgər proqramınız belə qırıq şəbəkəni aşkar edərsə, sadəcə "disjoint" mesajını çıxışa verin. Qeyd edin ki, şəxsdən şəxsə xəbərin çatdırılması üçün tələb olunan vaxt -dən -ya çatdırılma vaxtı ilə eyni olmaya bilər — hətta belə ötürmə mümkün olduğu halda belə.

Nümunələr

Nümunə 1

Loading
Loading