Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
32805 林芳菲 【J】计算器 C++ 运行超时 20 1000 MS 1716 KB 1425 2024-10-01 15:17:36

Tests(5/25):


#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; }


测评信息: