Tagi
시간 제한1초메모리 제한2048 MB
정적 배열에서 각 질의마다 [L, R] 구간의 모든 원소를 변환한 뒤(짝수는 절반, 홀수는 X로 바꿈) 합을 구하고, 변환은 되돌린다.
문제
Markov veliki pomoćnik u organizaciji nastupa je robot Tagi. Kad god uhvate slobodan trenutak, Marko i Tagi vole igrati sljedeću igru: prvo Tagi odredi niz od prirodnih brojeva. Zatim Tagi mora čim brže odgovoriti na Markovih pitanja. U svakom pitanju Marka zanima koliki je zbroj brojeva u nizu od pozicije do pozicije .
Naravno, Tagiju je to prelako pa su igru učinili još zanimljivijom. Marko će Tagiju u svakom pitanju zadati i broj za transformiranje . Tagi će zatim brojeve od pozicije do pozicije transformirati na sljedeći način:
- Ako je broj paran, tada će njega transformirati u upola manji broj (tj., podijeliti će broj s )
- Ako je broj neparan, tada će taj broj transformirati u broj .
Nakon što Tagi transformira brojeve, zbrojit će ih i odgovoriti Marku na pitanje. A prije nego Marko postavi novo pitanje, Tagi će sve transformacije poništiti.
Iako je Tagi besprijekoran u svim ostalim zadacima, transformiranje brojeva mu ne ide tako lako. Pomozite mu odgovoriti na Markova pitanja!
입력
U prvom retku su prirodni brojevi i (, ), broj brojeva u nizu i broj Markovih pitanja.
U sljedećem retku je prirodnih brojeva (), brojevi u nizu.
Slijedi redaka po tri broja , i (, ) koji označavaju da Marko u -tom pitanju traži zbroj brojeva od pozicije do pozicije uz zadani broj za transformiranje .
출력
U redova ispiši po jedan prirodan broj, redom odgovor na svako Markovo pitanje.
힌트
Opis prvog probnog primjera:
- upit:
- upit:
- upit:
- upit:
- upit: