301560: CF295A. Greg and Array

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Greg and Array

题意翻译

题目描述 Greg 有一个数列 a{a1,a2,a3...an}和m个操作(不立即执行) 每个操作将以以下形式给出,如 li ri di, (1<=li<=ri<=n).每个操作的意思是 给区间[ali,ari]中每个数加上di; Greg在纸上写下了K个问题,每个问题将以以下形式给出 如 xi,yi; (1<=xi<=yi<=m)这意味着你应该对数组执行第xi.第xi+1.第xi+2...第yi个操作 现在Greg想知道,当操作执行之后数组a将会变得怎样,请帮帮他; 输入输出格式 输入格式: 第一行包含几个整数n,m,k(1<=n,m,k<=10^5) 第二行是原始数列 接下来m行将给出m个操作,每行有三个整数,分别为 li,ri,di;(1<=li<=ri<=n)(0<=di<=10^5) 接下来k行包含k个问题,每行有两个整数,分别为 xi,yi 每行的整数将以空格隔开 输出格式: 输出最终数列 注意,请不要在C++中使用%lld标志来输出64位整数long long,推荐使用cin, cout流或者用%I64d标志 By William_Fangs

题目描述

Greg has an array $ a=a_{1},a_{2},...,a_{n} $ and $ m $ operations. Each operation looks as: $ l_{i} $ , $ r_{i} $ , $ d_{i} $ , $ (1<=l_{i}<=r_{i}<=n) $ . To apply operation $ i $ to the array means to increase all array elements with numbers $ l_{i},l_{i}+1,...,r_{i} $ by value $ d_{i} $ . Greg wrote down $ k $ queries on a piece of paper. Each query has the following form: $ x_{i} $ , $ y_{i} $ , $ (1<=x_{i}<=y_{i}<=m) $ . That means that one should apply operations with numbers $ x_{i},x_{i}+1,...,y_{i} $ to the array. Now Greg is wondering, what the array $ a $ will be after all the queries are executed. Help Greg.

输入输出格式

输入格式


The first line contains integers $ n $ , $ m $ , $ k $ $ (1<=n,m,k<=10^{5}) $ . The second line contains $ n $ integers: $ a_{1},a_{2},...,a_{n} $ $ (0<=a_{i}<=10^{5}) $ — the initial array. Next $ m $ lines contain operations, the operation number $ i $ is written as three integers: $ l_{i} $ , $ r_{i} $ , $ d_{i} $ , $ (1<=l_{i}<=r_{i}<=n) $ , $ (0<=d_{i}<=10^{5}) $ . Next $ k $ lines contain the queries, the query number $ i $ is written as two integers: $ x_{i} $ , $ y_{i} $ , $ (1<=x_{i}<=y_{i}<=m) $ . The numbers in the lines are separated by single spaces.

输出格式


On a single line print $ n $ integers $ a_{1},a_{2},...,a_{n} $ — the array after executing all the queries. Separate the printed numbers by spaces. Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams of the %I64d specifier.

输入输出样例

输入样例 #1

3 3 3
1 2 3
1 2 1
1 3 2
2 3 4
1 2
1 3
2 3

输出样例 #1

9 18 17

输入样例 #2

1 1 1
1
1 1 1
1 1

输出样例 #2

2

输入样例 #3

4 3 6
1 2 3 4
1 2 1
2 3 2
3 4 4
1 2
1 3
2 3
1 2
1 3
2 3

输出样例 #3

5 18 31 20

Input

题意翻译

题目描述 Greg 有一个数列 a{a1,a2,a3...an}和m个操作(不立即执行) 每个操作将以以下形式给出,如 li ri di, (1<=li<=ri<=n).每个操作的意思是 给区间[ali,ari]中每个数加上di; Greg在纸上写下了K个问题,每个问题将以以下形式给出 如 xi,yi; (1<=xi<=yi<=m)这意味着你应该对数组执行第xi.第xi+1.第xi+2...第yi个操作 现在Greg想知道,当操作执行之后数组a将会变得怎样,请帮帮他; 输入输出格式 输入格式: 第一行包含几个整数n,m,k(1<=n,m,k<=10^5) 第二行是原始数列 接下来m行将给出m个操作,每行有三个整数,分别为 li,ri,di;(1<=li<=ri<=n)(0<=di<=10^5) 接下来k行包含k个问题,每行有两个整数,分别为 xi,yi 每行的整数将以空格隔开 输出格式: 输出最终数列 注意,请不要在C++中使用%lld标志来输出64位整数long long,推荐使用cin, cout流或者用%I64d标志 By William_Fangs

加入题单

上一题 下一题 算法标签: