# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
484036 | Cross_Ratio | 정렬하기 (IOI15_sorting) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "sorting.h"
using namespace std;
typedef pair<long long int, int> P;
vector<P> So;
vector<long long int> S;
vector<int> X, Y, P, Q;
int N;
int findSwapPairs(int N2, int S2[], int M, int X2[], int Y2[], int P1[], int P2[]) {
N = N2;
int i, j;
for(i=0;i<N;i++) {
So.push_back(P(S2[i],i));
S.push_back(S2[i]);
X.push_back(X2[i]);
Y.push_back(Y2[i]);
}
for(i=0;i<N;i++) {
So[i].first = N * So[i].first + i;
S[i] = N * S[i] + i;
}
sort(So.begin(),So.end());
int cnt = 0;
for(i=0;i<N;i++) {
if(S[i] == So[i].first) continue;
P1[cnt] = i;
P2[cnt] = So[i].second;
swap(S[i],S[So[i].second]);
cnt++;
}
return cnt;
}