1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <string>
#include <vector>
#include <iostream>
#include <fstream>
#include <algorithm>

int main() {
	int n; int q;

	std::cin >> n;
	std::cin >> q;

	std::vector<std::pair<int, int>> wydarzenia;
	std::vector<std::pair<int, std::pair<int, int>>> zapytania;

	int a; int b; int c;
	for (int i = 0; i < n; i++) {
		std::cin >> a;
		std::cin >> b;
		wydarzenia.push_back({ a,b });
	}

	for (int i = 0; i < q; i++) {
		std::cin >> a;
		std::cin >> b;
		std::cin >> c;
		zapytania.push_back({ a, {b, c} });
	}

	for (int i = 0; i < q; i++) {
		long long sum = zapytania[i].first;
		for (int j = zapytania[i].second.first; j < zapytania[i].second.second; j++) {
			sum = std::max(sum + wydarzenia[j].first, sum * wydarzenia[j].second);
		}
		sum = sum % 1000000007;
		std::cout << sum;
		if (i != q - 1) std::cout << std::endl;
	}

	return 0;
}