WnSOJ
Home
Problems
Jobs
FAQ
API
Swagger UI
ReDoc
Login
Register
Submission #56
ID
Time
User
Problem
Language
Verdict
Time
Memory
56
Jan/26/2026 07:30
admin
RSQ Queries
cpp
CE
0 ms
0 KB
Source Code
Theme:
default
darcula
eclipse
Copy Code
#pragma GCC optimize("O3") #pragma GCC target("avx2,tune=native") #include <bits/stdc++.h> #include <immintrin.h> using namespace std; static inline long long sum_range(const int* a, int lo, int hi) { #if defined(__AVX2__) long long s = 0; int i = lo; __m256i acc0 = _mm256_setzero_si256(); __m256i acc1 = _mm256_setzero_si256(); for (; i + 8 <= hi; i += 8) { __m256i v = _mm256_loadu_si256((const __m256i*)(a + i)); __m128i v0 = _mm256_castsi256_si128(v); __m128i v1 = _mm256_extracti128_si256(v, 1); __m256i w0 = _mm256_cvtepi32_epi64(v0); __m256i w1 = _mm256_cvtepi32_epi64(v1); acc0 = _mm256_add_epi64(acc0, w0); acc1 = _mm256_add_epi64(acc1, w1); } alignas(32) long long t0[4], t1[4]; _mm256_store_si256((__m256i*)t0, acc0); _mm256_store_si256((__m256i*)t1, acc1); s += t0[0] + t0[1] + t0[2] + t0[3]; s += t1[0] + t1[1] + t1[2] + t1[3]; for (; i < hi; ++i) s += a[i]; return s; #else long long s = 0; for (int i = lo; i < hi; ++i) s += a[i]; return s; #endif } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; ++i) cin >> a[i]; int q; cin >> q; while (q--) { int p, l, r; cin >> p >> l >> r; if (p == 1) { a[l - 1] = r; } else { int lo = l - 1; int hi = r; cout << sum_range(a.data(), lo, hi) << '\n'; } } return 0; }
cpp