# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
632264 | 2022-08-19T19:26:24 Z | CyberCow | Addk (eJOI21_addk) | C++17 | 24 ms | 2556 KB |
#include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <string> #include <cmath> #include <map> #include <unordered_map> #include <unordered_set> #include <fstream> #include <iomanip> #include <iterator> #include <stack> #include <deque> using namespace std; using ll = long long; ll a[100005], n; ll p[100005], s[100005]; ll pref[100005]; ll ach(int l, int r) { if (l > r) return 0; return p[r] - p[l - 1] - (pref[r] - pref[l - 1]) * (l - 1); } ll nvaz(int l, int r) { if (l > r) return 0; return s[l] - s[r + 1] - (pref[r] - pref[l - 1]) * (n - r); } ll mij(int l, int r, int q) { if (l > r) return 0; return q * (pref[r] - pref[l - 1]); } void solve() { int i, j, x, y, k; cin >> n >> k; for ( i = 1; i <= n; i++) { cin >> a[i]; p[i] = p[i - 1] + a[i] * i; pref[i] = pref[i - 1] + a[i]; } for ( i = n; i >= 1; i--) { s[i] = s[i + 1] + a[i] * (n - i + 1); } int q, l, r, m; cin >> q; for ( i = 0; i < n; i++) { cin >> k; if (k == 1) { cin >> k; } else { cin >> l >> r >> m; if (m == 1) { cout << pref[r] - pref[l - 1] << '\n'; } else { int mi = min(l + m - 1, r - m), ma = max(l + m, r - m + 1); cout << ach(l, mi) + mij(mi + 1, ma - 1, mi + 2 - l) + nvaz(ma, r) << '\n'; } } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int tt = 1; //cin >> tt; while (tt--) { solve(); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 340 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 1136 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 24 ms | 2556 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |