Submission #133616

#TimeUsernameProblemLanguageResultExecution timeMemory
133616Mahdi_JfriSorting (IOI15_sorting)C++14
0 / 100
4 ms760 KiB
#include "sorting.h"
#include<bits/stdc++.h>

using namespace std;

#define ll long long
#define pb push_back

const int maxn = 2e3 + 20;

int pos[maxn][maxn];

int findSwapPairs(int n, int a[], int m, int x[], int y[], int p[], int q[])
{
	swap(a[x[0]] , a[y[0]]);

	for(int i = 0; i < n; i++)
		pos[m - 1][i] = i;
	for(int i = m - 2; i >= 0; i--)
	{
		memcpy(pos[i] , pos[i + 1] , sizeof pos[i + 1]);
		swap(pos[i][x[i + 1]] , pos[i][y[i + 1]]);
	}

	for(int i = 0; i < m; i++)
	{
		for(int j = 0; j < n; j++)
			if(pos[i][j] != a[j])
			{
				int ind = -1;
				for(int k = 0; k < n; k++)
					if(pos[i][k] == a[j])
						ind = k;

				while(ind < 0);
				p[i] = j , q[i] = ind;
				swap(a[j] , a[ind]);
				break;
			}

		swap(a[x[i + 1]] , a[y[i + 1]]);
	}

	return m;
}



#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...