# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
552878 | 2022-04-24T09:03:27 Z | elazarkoren | 정렬하기 (IOI15_sorting) | C++17 | 12 ms | 468 KB |
#include "sorting.h" #include <bits/stdc++.h> #define x first #define y second #define all(v) v.begin(), v.end() #define chkmin(a, b) a = min(a, b) #define chkmax(a, b) a = max(a, b) //#define int ll using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> pii; typedef vector<pii> vii; typedef vector<bool> vb; const int MAX_N = 2e5 + 5; int x[MAX_N], y[MAX_N]; int n; int cnt; vi Compute(int i, vi s) { for (; i < cnt; i++) swap(s[x[i]], s[y[i]]); return s; } int findSwapPairs(int N, int S[], int m, int X[], int Y[], int p[], int q[]) { n = N; cnt = n; vi s(n); for (int i = 0; i < n; i++) s[i] = S[i], x[i] = X[i], y[i] = Y[i]; for (int i = 0; i < cnt; i++) { swap(s[x[i]], s[y[i]]); vi s2 = Compute(i + 1, s); int v1, v2; for (int j = 0; j < n; j++) { if (s2[j] == i) { v1 = s2[i], v2 = s2[j]; } } int ind1, ind2; for (ind1 = 0; s[ind1] != v1; ind1++); for (ind2 = 0; s[ind2] != v2; ind2++); p[i] = ind1, q[i] = ind2; swap(s[p[i]], s[q[i]]); } // for (int i = 0; i < n; i++) s[i] = S[i]; // for (int i = 0; i < cnt; i++) { // swap(s[x[i]], s[y[i]]); // swap(s[p[i]], s[q[i]]); // } // for (int i = 0; i < n; i++) { // if (s[i] != i) { // return -1; // } // } return n - 1; } //8 //3 5 6 2 1 7 0 4 //8 //0 1 //0 1 //0 1 //0 1 //0 1 //0 1 //0 1 //0 1
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Incorrect | 1 ms | 212 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Incorrect | 1 ms | 212 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 212 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Incorrect | 1 ms | 212 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 468 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 468 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |