제출 #1302259

#제출 시각아이디문제언어결과실행 시간메모리
1302259nicolo_010정렬하기 (IOI15_sorting)C++20
16 / 100
3 ms580 KiB
#include <bits/stdc++.h>
#include "sorting.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int MOD = 1e9+7;

int findSwapPairs(int n, int* s, int m, int* x, int* y, int* p, int* q) {
	int id=0;
	vector<int> a(n);
	for (int i=0; i<n; i++) {
		a[i] = s[i];
	}
	for (int i=0; i<n-1; i++) {
		int mx=a[0];
		int idx=0;
		for (int j=0; j<n-i; j++) {
			if (a[j] > mx) {
				idx = j;
				mx = a[j];
			}
		}
		if (idx == n-1-i) continue;
		swap(a[x[id]], a[y[id]]);
		m--;
		mx=a[0];
		idx=0;
		for (int j=0; j<n-i; j++) {
			if (a[j] > mx) {
				idx = j;
				mx = a[j];
			}
		}
		swap(a[idx], a[n-i-1]);
		p[id] = idx;
		q[id] = n-i-1;
		id++;
	}
	if (a[0] < a[1]) {
		if (m&1) {
			p[id] = 0;
			q[id] = 1;
			id++;
		}
	}
	else {
		if (m%2==0) {
			p[id] = 0;
			q[id] = 1;
			id++;
		}
	}
	return id;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...