| Task: | Omenat |
| Sender: | Metabolix |
| Submission time: | 2015-12-19 14:04:29 +0200 |
| Language: | C++ |
| Status: | READY |
| Result: | 6 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 6 |
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.72 s | 0 | details |
| #2 | ACCEPTED | 0.98 s | 0.1 | details |
| #3 | ACCEPTED | 0.98 s | 0 | details |
| #4 | ACCEPTED | 0.99 s | 1.5 | details |
| #5 | ACCEPTED | 0.99 s | 0.7 | details |
| #6 | ACCEPTED | 0.99 s | 0 | details |
| #7 | ACCEPTED | 0.98 s | 0.2 | details |
| #8 | ACCEPTED | 0.99 s | 2.8 | details |
| #9 | ACCEPTED | 0.99 s | 0.1 | details |
| #10 | ACCEPTED | 1.00 s | 0.6 | details |
Code
#include <iostream>
#include <vector>
#include <random>
#include <time.h>
int main() {
clock_t c0 = clock();
std::mt19937 gen;
int n;
std::cin >> n;
std::vector<int> p(n);
long e = 0;
while (n) {
--n;
std::cin >> p[n];
e += p[n];
}
std::vector<int> p0(p);
long e0 = e;
while (e0 != 0 && (clock() - c0) * 1.0 / CLOCKS_PER_SEC < 0.95) {
for (int i = 0; i < 300000; ++i) {
++n;
int r = gen() % p.size();
if (p[r] * e < 0) {
continue;
}
p[r] = -p[r];
e += p[r] * 2;
if (std::abs(e) < std::abs(e0)) {
e0 = e;
p0 = p;
if (e0 == 0) {
break;
}
}
}
}
for (int i: p0) {
std::cout << (i < 0 ? "1 " : "2 ");
}
std::cout << "\n";
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 95 779724552 231968220 985023789 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1 1 2 2 2 1 2 1 1 2 2 1 2 2 1 ... |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 85 229722261 51722691 862338862 8... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1 2 1 1 2 1 2 2 1 1 1 2 1 2 2 ... |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 97 398995377 989444445 634573915 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 2 1 2 2 1 2 2 1 2 1 1 1 1 1 1 ... |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 99 843687873 164010938 51269970 4... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1 1 2 2 2 2 1 2 2 2 1 2 1 2 2 ... |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 90 864611617 418460939 773297829 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 2 1 2 1 2 2 1 2 1 1 1 1 2 1 1 ... |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 92 289890246 25801423 763027596 7... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 2 2 2 1 2 1 1 1 1 2 1 2 1 2 2 ... |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 89 879039800 50522278 850785072 4... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1 2 1 2 1 2 1 2 2 2 1 2 1 1 1 ... |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 96 27192469 222283781 681532515 1... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 2 1 2 2 2 1 1 1 1 1 1 1 1 2 2 ... |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 100 186459081 254674429 394007236 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 2 2 2 2 1 2 1 1 1 1 1 2 2 2 2 ... |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 98 612168861 979831717 671087051 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 2 1 1 2 1 2 2 1 1 1 1 2 1 2 2 ... |
