| Task: | Alien Invasion |
| Sender: | Ukkonen Fan Club |
| Submission time: | 2018-05-26 11:11:47 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.18 s | details |
| #2 | ACCEPTED | 0.18 s | details |
| #3 | ACCEPTED | 0.19 s | details |
| #4 | ACCEPTED | 0.17 s | details |
| #5 | ACCEPTED | 0.16 s | details |
| #6 | ACCEPTED | 0.17 s | details |
| #7 | ACCEPTED | 0.15 s | details |
| #8 | ACCEPTED | 0.18 s | details |
| #9 | ACCEPTED | 0.19 s | details |
| #10 | ACCEPTED | 0.21 s | details |
| #11 | ACCEPTED | 0.18 s | details |
| #12 | ACCEPTED | 0.16 s | details |
| #13 | ACCEPTED | 0.17 s | details |
| #14 | ACCEPTED | 0.20 s | details |
| #15 | ACCEPTED | 0.16 s | details |
| #16 | ACCEPTED | 0.17 s | details |
| #17 | ACCEPTED | 0.17 s | details |
| #18 | ACCEPTED | 0.18 s | details |
| #19 | ACCEPTED | 0.18 s | details |
| #20 | ACCEPTED | 0.16 s | details |
| #21 | ACCEPTED | 0.18 s | details |
| #22 | ACCEPTED | 0.17 s | details |
Code
#include <iostream>
#include <vector>
const int N = 1e7;
int divs[N];
std::vector<int> primes;
bool sqr(long long v) {
long long low = 0;
long long high = 10 + (int)1e9;
while(low != high) {
long long mid = (low + high) >> 1;
long long val = mid * mid;
if (val < v) {
low = mid + 1;
} else {
high = mid;
}
}
return (low * low == v);
}
int main() {
for (int i = 0; i < N; ++i) divs[i] = -1;
for (int i = 2; i < N; ++i) {
if (divs[i] == -1) {
divs[i] = primes.size();
primes.push_back(i);
}
for (int j = 0; j <= divs[i]; ++j) {
int t = i * primes[j];
if (t >= N) break;
divs[t] = j;
}
}
long long n;
std::cin >> n;
bool even = false;
for (auto p : primes) {
int k = 1;
while(n % p == 0) {
++k;
n /= p;
}
if (k % 2 == 0) even = true;
}
if (n >= N) {
if (! sqr(n)) {
even = true;
}
}
if (even) {
std::cout << "even\n";
} else {
std::cout << "odd\n";
}
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 1 |
| correct output |
|---|
| odd |
| user output |
|---|
| odd |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 2 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 3 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 4 |
| correct output |
|---|
| odd |
| user output |
|---|
| odd |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 5 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 6 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 7 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 8 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 9 |
| correct output |
|---|
| odd |
| user output |
|---|
| odd |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 10 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 11 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 12 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 13 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 14 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 15 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 16 |
| correct output |
|---|
| odd |
| user output |
|---|
| odd |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 17 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 18
Verdict: ACCEPTED
| input |
|---|
| 18 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 19
Verdict: ACCEPTED
| input |
|---|
| 19 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 20
Verdict: ACCEPTED
| input |
|---|
| 999999874000003969 |
| correct output |
|---|
| odd |
| user output |
|---|
| odd |
Test 21
Verdict: ACCEPTED
| input |
|---|
| 999999999999999989 |
| correct output |
|---|
| even |
| user output |
|---|
| even |
Test 22
Verdict: ACCEPTED
| input |
|---|
| 1000000000000000000 |
| correct output |
|---|
| odd |
| user output |
|---|
| odd |
