| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1022520 | A_M_Namdar | XORanges (eJOI19_xoranges) | C++14 | 10 ms | 5976 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const long long N = 1e5 + 10, SQ = 400;
long long n, q, a[N], dp[2][N];
int ans(int l, int r) {
if ((r - l) & 1 == 0)
return 0;
int res = 0;
int l1 = ((l + SQ - 1) / SQ) & SQ, r1 = (r / SQ) * SQ;
if (r1 > l1) {
for (int i = l; i < l1; i += 2)
res ^= a[i];
for (int i = l1; i < r1; i++)
res ^= dp[l & 1][i];
for (int i = r1 + (l & 1); i < r; i += 2)
res ^= a[i];
}
else
for (int i = l; i < r; i += 2)
res ^= a[i];
return res;
}
void input() {
cin >> n >> q;
for (int i = 0; i < n; i++)
cin >> a[i];
}
void solve() {
for (int i = 0; i < q; i++) {
int op;
cin >> op;
if (op == 1) {
int j, v;
cin >> j >> v;
j--;
dp[j & 1][j / SQ] ^= a[j] ^ v;
a[j] = v;
}
else {
int l, r;
cin >> l >> r;
cout << ans(l - 1, r) << '\n';
}
}
}
int main() {
ios:: sync_with_stdio(0), cin.tie(0), cout.tie(0);
input();
solve();
return 0;
}컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
