Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32805 | 林芳菲 | 【J】计算器 | C++ | 运行超时 | 20 | 1000 MS | 1716 KB | 1425 | 2024-10-01 15:17:36 |
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; int n, q; long long s[100010]; struct node { int op, x; } ; node p[100010]; long long cal(int l, int r) { long long ans = 0; if (l == 0) return 0; for (int i = l; i <= r; i++) { if (p[i].op == 1) ans += p[i].x; else ans *= p[i].x; if (ans > 1e18) return -1; } return ans; } void solveA() { bool flag = true; for (int i = 1; i <= n; i++) if (p[i].op != 1) { flag = false; break; } if (flag) { for (int i = 1; i <= n; i++) s[i] = s[i - 1] + p[i].x; while (q--) { int l, r; cin >> l >> r; cout << s[r] - s[l - 1] << endl; } exit(0); } flag = true; for (int i = 1; i <= n; i++) if (p[i].op != 2) { flag = false; break; } if (flag) { while (q--) { int l, r; cin >> l >> r; cout << "0" << endl; } exit(0); } } int main() { //freopen("calculator.in", "r", stdin); //freopen("calculator.out", "w", stdout); ios::sync_with_stdio(false); cin >> n >> q; for (int i = 1; i <= n; i++) cin >> p[i].op >> p[i].x; solveA(); while (q--) { int l, r; cin >> l >> r; cout << cal(l, r) << endl; } //fclose(stdin); //fclose(stdout); return 0; }