Lattice Kvadratlarını Saymaq#6944

Lattice Kvadratlarını Saymaq

5 saniyə
128 meqabayt
Çətin

Bir qarmaq kvadratı, zirvələri tam ədədlərlə ifadə olunan nöqtələrdən ibarət olan bir kvadratdır. Məsələn, (1, 5) bir qarmaq nöqtəsidir, lakin (1, 1.5) deyil. (n×m) ölçülü bir şəbəkədə çox sayda qarmaq kvadratı ola bilər. Sol tərəfdəki şəkildə (4×4) şəbəkəsində bəzi qarmaq kvadratlarını görə bilərsiniz.

Oxlara paralel olan qarmaq kvadratlarını saymaq (Şəkil 1, Şəkil 2 və Şəkil 3) asandır, lakin oxlara paralel olmayan qarmaq kvadratları da mövcuddur (Şəkil 4, Şəkil 5 və Şəkil 6) və onları saymaq bir qədər çətindir. Bu kvadratların bəziləri cüt sahəyə malik ola bilər (Şəkil 2, Şəkil 4, Şəkil 6), digərləri isə tək sahəyə malik ola bilər (Şəkil 1, Şəkil 3, Şəkil 5). Verilən (m×n) şəbəkəsində sizin vəzifəniz, həmin şəbəkədə tək sahəyə malik neçə fərqli qarmaq kvadratının çəkilə biləcəyini sayan bir proqram yazmaqdır. İki qarmaq kvadratı fərqlidir, əgər onlar bütün dörd zirvəni paylaşmırlarsa.

Giriş

Giriş faylı ən çox 50000 sətirdən ibarətdir. Hər sətir iki tam ədəd m, n (1 ≤ m, n ≤ 100000) ehtiva edir. Giriş iki sıfırdan ibarət bir sətirlə tamamlanır.

Çıxış

Girişin hər sətiri üçün bir çıxış sətiri yaradın. Bu sətir, (m×n) şəbəkəsində tək sahəyə malik neçə fərqli qarmaq kvadratının çəkilə biləcəyini göstərən tam ədəd S ehtiva edir. S dəyərinin 64-bit imzalı tam ədədə sığacağını qəbul edə bilərsiniz.

Nümunələr

Nümunə 1

Loading
Loading