답안 #579839

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
579839 2022-06-20T05:35:08 Z dxz05 Xor Sort (eJOI20_xorsort) C++14
25 / 100
1000 ms 12536 KB
#pragma GCC optimize("Ofast,O2,O3,unroll-loops")
#pragma GCC target("avx2")

#include <bits/stdc++.h>

using namespace std;

void debug_out() { cerr << endl; }

template<typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
    cerr << "[" << H << "]";
    debug_out(T...);
}

#ifdef dddxxz
#define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define debug(...) 42
#endif

#define SZ(s) ((int)s.size())
#define all(x) (x).begin(), (x).end()
#define lla(x) (x).rbegin(), (x).rend()
#define bpc(x) __builtin_popcount(x)
#define bpcll(x) __builtin_popcountll(x)

clock_t startTime;

double getCurrentTime() {
    return (double) (clock() - startTime) / CLOCKS_PER_SEC;
}

#define MP make_pair

typedef long long ll;
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
const double eps = 0.000001;
const int MOD = 1e9 + 7;
const int INF = 1000000101;
const long long LLINF = 1223372000000000555;
const int N = 1e6 + 3e2;
const int M = 1111;

int a[N];

vector<pair<int, int>> ans;

void add(int i, int j){
    ans.emplace_back(i, j);
    a[i] ^= a[j];
}

void solve(int TC) {
    int n, S;
    cin >> n >> S;

    for (int i = 1; i <= n; i++) cin >> a[i];

    for (int it = 1; it <= n; it++){
        for (int i = n - 1; i >= 1; i--){
            if (a[i] > a[i + 1]){
                add(i + 1, i);
                add(i, i + 1);
                add(i + 1, i);
            }
        }
    }

//    for (int i = 1; i <= n; i++) cout << a[i] << ' '; cout << endl;

    cout << ans.size() << endl;
    for (auto now : ans) cout << now.first << ' ' << now.second << endl;

}

int main() {
    startTime = clock();
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);

#ifdef dddxxz
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif

    int TC = 1;
//    cin >> TC;

    for (int test = 1; test <= TC; test++) {
        //debug(test);
        //cout << "Case #" << test << ": ";
        solve(test);
    }

#ifdef dddxxz
    cerr << endl << "Time: " << int(getCurrentTime() * 1000) << " ms" << endl;
#endif

    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 3 ms 340 KB Output is correct
4 Correct 21 ms 624 KB Output is correct
5 Correct 27 ms 724 KB Output is correct
6 Correct 25 ms 724 KB Output is correct
7 Correct 23 ms 724 KB Output is correct
8 Correct 22 ms 724 KB Output is correct
9 Correct 23 ms 728 KB Output is correct
10 Correct 29 ms 724 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
12 Correct 44 ms 984 KB Output is correct
13 Correct 55 ms 984 KB Output is correct
14 Correct 57 ms 984 KB Output is correct
15 Correct 46 ms 972 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 3 ms 340 KB Output is correct
4 Correct 21 ms 624 KB Output is correct
5 Correct 27 ms 724 KB Output is correct
6 Correct 25 ms 724 KB Output is correct
7 Correct 23 ms 724 KB Output is correct
8 Correct 22 ms 724 KB Output is correct
9 Correct 23 ms 728 KB Output is correct
10 Correct 29 ms 724 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
12 Correct 44 ms 984 KB Output is correct
13 Correct 55 ms 984 KB Output is correct
14 Correct 57 ms 984 KB Output is correct
15 Correct 46 ms 972 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 23 ms 724 KB Output is correct
18 Correct 40 ms 908 KB Output is correct
19 Correct 45 ms 916 KB Output is correct
20 Correct 46 ms 852 KB Output is correct
21 Correct 39 ms 888 KB Output is correct
22 Correct 52 ms 840 KB Output is correct
23 Correct 43 ms 848 KB Output is correct
24 Correct 38 ms 848 KB Output is correct
25 Correct 38 ms 876 KB Output is correct
26 Incorrect 76 ms 1360 KB Integer 59568 violates the range [0, 40000]
27 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 3 ms 340 KB Output is correct
4 Correct 45 ms 844 KB Output is correct
5 Execution timed out 1062 ms 12536 KB Time limit exceeded
6 Halted 0 ms 0 KB -