Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
45115 wangjiajian 课堂检测 C++ 解答错误 60 32 MS 1828 KB 1026 2022-02-15 13:06:22

Tests(14/23):


#include <bits/stdc++.h> #define lll long long #define N (int)(100010) using namespace std; int n, m, choice, l, r, x, block, num; lll data[N], idx[N], tag[N]; lll mn(lll a, int b) { if(a < b) return a; return b; } int main() { scanf("%d", &n); block = sqrt(n); for(register int i=1; i<=n; i++) { scanf("%d", data+i); idx[i] = (i-1)/block+1; } scanf("%d", &m); while(m--) { scanf("%d", &choice); if(choice == 1) { scanf("%d%d%d", &l, &r, &x); for(register int i=l; i<=mn(idx[l]*block, r); i++) data[i] += x; if(idx[l] != idx[r]) { for(register int i=block*(idx[r]-1)+1; i<=r; i++) data[i]+=x; } for(register int i=idx[l]+1; i<=idx[r]-1; i++) tag[i] += x; } else { scanf("%d", &x); printf("%lld\n", data[x]+tag[idx[x]]); } } return 0; }


测评信息: