Прашанки над граф
Нека постои насочен граф G со N темиња (нумерирани од 1 до N) и множество на ребра E. За секој пар темиња a, b во G, 1 < a < b, реброто (a, b) постои во E доколку барем еден од следните услови е исполнет:
1) Вредноста на a е делител на b;
2) Постои теме c (1 < c), така што вредноста на c е делител и на a и на b.
Пример-граф со големина 8 е следниот:
![]() |
Твоја задача е да процесираш Q прашанки на граф со големина N. Постојат два типа на прашанки:
1) За дадено теме V во G, да го вратите влезниот степен на V (вкупниот број на ребра кои што завршуваат, т.е. влегуваат во V);
2) За дадени две темиња L, R во G, L ≤ R, најдете ја сумата на влезните степени за сите темиња во G со вредност во интервалот [L, R] (modulo 109 + 7)
Влез
На влез во првиот ред се наоѓаат три цели броја N (1 ≤ N ≤ 109), Q (1 ≤ Q ≤ 104), и T (типот на прашанки, или 1 или 2).
Потоа, следат Q редови со вредности. Доколку Т = 1, секој ред ќе содржи точно еден цел број V (1 < V ≤ 109). Доколку Т = 2, секој ред ќе содржи пар од цели броеви, L и R ( 1 < L < R ≤ 106).
Подзадачи.
Подзадача 1. (15 поени) T = 1, 1 ≤ N ≤ 104, 1 ≤ Q ≤ 25
Подзадача 2. (25 поени) T = 1
Подзадача 3. (60 поени) T = 2, 1 ≤ N ≤ 106
Излез
За секоја прашанка, во посебен ред да се испечати одговорот.
Ограничувања
Временско ограничување: 200 milliseconds
Мемориско ограничување: 64 megabytes
Примери
влез 8 7 1 2 3 4 5 6 7 8 | излез 0 0 1 0 3 0 3 |
влез 8 2 2 2 8 3 7 | излез 7 4 |
Објаснување на првиот пример: Види ја сликата погоре (пример-графот со големина 8).