#include <iostream>
#include <vector>
using namespace std;
struct Runda
{
int d_pocz, h_pocz, m_pocz, d_kon, h_kon, m_kon;
};
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, q;
const long long MOD = 1e9 + 7;
cin >> n >> q;
vector<long long> wyd_a(n), wyd_b(n);
// wydarzenia
for (int i = 0; i < n; i++)
{
cin >> wyd_a[i] >> wyd_b[i];
}
long long x /* ile ma wojownikow */, l /* po ilu wydarzeniach */, r /* po ktorym wydarzeniu raportujemy liczbe woj.*/;
// zapytania
for (int i = 0; i < q; i++)
{
cin >> x >> l >> r;
while (l < r)
{
if (x + wyd_a[l] > x * wyd_b[l])
x = x + wyd_a[l];
else
x = x * wyd_b[l];
l++;
}
cout << x % MOD << "\n";
}
return (0);
}
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 42 43 44 45 46 47 48 49 50 | #include <iostream> #include <vector> using namespace std; struct Runda { int d_pocz, h_pocz, m_pocz, d_kon, h_kon, m_kon; }; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, q; const long long MOD = 1e9 + 7; cin >> n >> q; vector<long long> wyd_a(n), wyd_b(n); // wydarzenia for (int i = 0; i < n; i++) { cin >> wyd_a[i] >> wyd_b[i]; } long long x /* ile ma wojownikow */, l /* po ilu wydarzeniach */, r /* po ktorym wydarzeniu raportujemy liczbe woj.*/; // zapytania for (int i = 0; i < q; i++) { cin >> x >> l >> r; while (l < r) { if (x + wyd_a[l] > x * wyd_b[l]) x = x + wyd_a[l]; else x = x * wyd_b[l]; l++; } cout << x % MOD << "\n"; } return (0); } |
English