MULTQ3 - Multiples of 3
There are N numbers a[0], a[1] ... a[N - 1]. Initially all are 0. You have to perform two types of operations :
- Increase the numbers between indices A and B (inclusive) by 1. This is represented by the command "0 A B"
- Answer how many numbers between indices A and B (inclusive) are divisible by 3. This is represented by the command "1 A B".
Input
The first line contains two integers, N and Q. Each of the next Q lines are either of the form "0 A B" or "1 A B" as mentioned above.
Output
Output 1 line for each of the queries of the form "1 A B" containing the required answer for the corresponding query.
Sample
Input: 4 7 1 0 3 0 1 2 0 1 3 1 0 0 0 0 3 1 3 3 1 0 3 Output: 4 1 0 2
Constraints
1 ≤ N ≤ 100000
1 ≤ Q ≤ 100000
0 ≤ A ≤ B ≤ N - 1
hide comments
stranger:
2012-10-29 13:28:14
TLE. i am just tired of problems where io is almost always the only thing that you should care about |
|
Ashok:
2012-08-31 10:38:28
used getchar_unlocked instead of scanf, still getting tle. |
|
gourav:
2012-08-26 17:54:14
do we need to use segment tree or something like that |
|
Amit:
2012-08-22 09:24:40
@Bruno : Thanks ( scanf -> getchar_unlocked() ) |
|
Rohit:
2012-07-10 11:31:34
gettinngg tle help!! |
|
Rishi Mukherje:
2012-05-09 18:35:12
Why not increase time limit for languages like python? |
|
Bruno Adami:
2011-10-13 20:23:14
The time limit is 1 second? o.O, the best solutions are greater than that!
|
|
oldmonk:
2011-06-12 12:25:01
getting TLE suggest some method to make it faster |
|
paddyHOD:
2011-02-10 11:00:15
my answer is correct
|
|
Anil Kishore:
2010-09-28 07:05:58
yes it is, thats why the first query "1 0 3" ( how many of A[0..3] are divisble by 3 ) returns 4 ( all 0s initially ) |
Added by: | Varun Jalan |
Date: | 2010-09-12 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: NODEJS OBJC VB.NET |
Resource: | own problem |