Sunday, 13 December 2020
TLX - TROC17A. Firework Festival
You can practice the question [here](https://tlx.toki.id/contests/troc-17/problems/A).
Given two arrays A and B, each of size N. Determine whether the sum of A[i]^B[i] for all 1 <= i <= N, is odd or even. Display the output 0 if the sum is even, or 1 if the sum is odd.
Input Format
```
N
A[1] A[2] ... A[N]
B[1] B[2] ... B[N]
```
Sample Input
```
5
2 4 6 8 2
1 2 3 4 5
```
Sample Output
```
0
```
Constraints
```
1 <= N <= 100
1 <= A[i], B[i] <= 100
```
Usually for Problem A, most of the solutions are brute-force. However, if we take the edge case 100, A[0] ^ B[0] + A[1] ^ B[1] + ... + A[99] ^ B[99] where A[i] and B[i] are 100, the overall result would occur overflow. We can notice that this problem is all about parity. The exponent B[i] of A[i] does not change the parity of A[i] ^ B[i]. Hence, we can conclude that
```
even ^ odd -> even
even ^ even -> even
odd ^ even -> odd
odd ^ even -> odd
```
and we know that
```
even + even -> even
odd + odd -> even
even + odd -> odd
```
Therefore, we can simply sum all the values and check if it is even or odd.
```cpp
int main()
{
int n; cin >> n;
vi a(n), b(n);
READ(a);
READ(b);
int sum = 0;
REP(i, n) sum += a[i];
OUT((sum & 1));
return 0;
}
```
Subscribe to:
Post Comments (Atom)
A Fun Problem - Math
# Problem Statement JATC's math teacher always gives the class some interesting math problems so that they don't get bored. Today t...
-
SHA stands for Secure Hashing Algorithm and 2 is just a version number. SHA-2 revises the construction and the big-length of the signature f...
-
Contest Link: [https://www.e-olymp.com/en/contests/19775](https://www.e-olymp.com/en/contests/19775) Full Solution: [https://github.com/...
No comments:
Post a Comment