Solvable problem

Time limit: 20s Memory limit: 512MB Input: Output:

Nici un om nu asterne in scris ceea ce are intentia sa spuna cu adevarat - sigma sigma boi, asta spune

Fie VV un sir de NN numere cuprinse in intervalul [1,1000][1, 1000]. Spunem ca un interval [l,r][l, r] din vector este bun daca indeplineste urmatoarele conditii:

  • rl2r - l \geq 2
  • pentru oricare li<jr,  ji2l \leq i < j \leq r, \ \ j - i \geq 2, exista un cc intre ii si jj (i<c<ji < c < j) astfel incat Vc=max(Vi,Vj)gcd(Vi,Vj)V_c = \dfrac{max(V_i,V_j)}{^† gcd(V_i,V_j)}.

gcd(a,b)^† gcd(a,b) = cel mai mare divizor comun al numerelor aa si bb.

Cerință

Se dau QQ operatii de genul:

  • 1  pos  xapos=x1 \ \ pos \ \ x \rightarrow a_{pos} = x
  • 2  l  r2 \ \ l \ \ r \rightarrow afla cate intervale bune se afla in [l,r][l,r].

Voi trebuie sa raspundeti la toate intrebarile de tipul 22. Operatiile de tipul 11 sunt permanente.

Date de intrare

Pe prima linie se afla doua numere naturale, NN si QQ. Pe urmatoarea linie se afla vectorul VV, urmat de QQ linii, reprezentand operatiile date.

Date de ieșire

Pe prima linie se va afisa NrNr, numarul de intervale bune prezente in vectorul dat.
Ulterior se vor afisa, pe cate o linie separata, raspunsurile la intrebarile date.

Restricții și precizări

  • 1N51051 \leq N \leq 5 \cdot 10^5;
  • 1Q1051 \leq Q \leq 10^5;
  • Se garanteaza ca 'xx'-ul din cadrul operatiilor nu depaseste 1  0001 \ \ 000.
    # Score Constraints
    1 5 Q=0,N10Q = 0, N \leq 10
    2 12 Q=0,N1  000Q = 0, N \leq 1 \ \ 000
    3 23 Q=0Q = 0
    4 20 Q100Q \leq 100
    5 12 1N1051 \leq N \leq 10^5
    6 28 Fara restrictii

Exemplul 1

stdin

6 0 
3 1 1 1 2 2

stdout

2

Explicație

Doar intervalele [2,4][2,4] si [4,6][4,6] sunt bune.

Exemplul 2

stdin

10 8
1 1 1 1 1 1 1 1 1 1 
2 4 9
2 10 10
1 4 1
1 6 180
1 7 180
1 8 157
2 1 6
2 4 9

stdout

36
10
0
6
2

Log in or sign up to be able to send submissions!