# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1089722 | 2024-09-17T03:08:34 Z | vjudge1 | Xor Sort (eJOI20_xorsort) | C++17 | 1000 ms | 524288 KB |
/* https://oj.uz/problem/view/eJOI20_xorsort?locale=en: WA */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <vector> unsigned int N, S, A[1000]; std::vector<std::pair<unsigned int, unsigned int>> operations; void destroysort(unsigned int i, unsigned int j) { unsigned int split, k, mask; if (i == j) return; for (k = i; k < j-1; ++k) if (A[k] > A[k+1]) goto actually_sort; return; actually_sort: for (mask = 0, k = i; k < j; ++k) mask |= A[k]; while (mask & (mask - 1)) mask &= mask - 1; for (k = i; k < j - 1; ++k) if ((mask & A[k]) && !(mask & A[k+1])) { A[k+1] ^= A[k]; operations.push_back({k+1, k}); } for (split = i; split < j; ++split) if (mask & A[split]) break; destroysort(i, split); destroysort(split, j); } void cursedbubblesort(unsigned int j) { unsigned int i, k; if (j == 1) return; k = 0; for (i = 1; i < j; ++i) if (A[i] > A[k]) k = i; if (k == j-1) { operations.push_back({j-2, j-1}); } else { for (i = k; i < j - 1; ++i) operations.push_back({i+1, i}); for (i = k-1; i > 0; --i) operations.push_back({i-1, i}); for (i = 0; i < j - 1; ++i) operations.push_back({i, i+1}); memmove(&A[k], &A[k+1], sizeof(*A)*(j-k-1)); } cursedbubblesort(j - 1); } int main(void) { (void) scanf("%u %u", &N, &S); for (unsigned int i = 0; i < N; ++i) (void) scanf(" %u", &A[i]); if (S == 1) { for (unsigned int i = 0; i < N - 1; ++i) operations.push_back({i, i+1}); cursedbubblesort(N); } else { destroysort(0, N); } printf("%u\n", operations.size()); for (auto operation : operations) printf("%u %u\n", operation.first + 1, operation.second + 1); return EXIT_SUCCESS; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 515 ms | 524288 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 515 ms | 524288 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1034 ms | 344 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |