Submission #56239

#TimeUsernameProblemLanguageResultExecution timeMemory
56239aquablitz11Sorting (IOI15_sorting)C++14
0 / 100
4 ms512 KiB
#include <bits/stdc++.h> #include "sorting.h" using namespace std; const int MAX = 200010; using pii = pair<int, int>; #define F first #define S second int n, m; int *A, *X, *Y, B[MAX]; bool vis[MAX]; vector<pii> check(int len) { for (int i = 0; i < n; ++i) B[i] = A[i], vis[i] = false; for (int i = 0; i < len; ++i) swap(B[X[i]], B[Y[i]]); vector<pii> ans; for (int s = 0; s < n; ++s) { if (vis[s]) continue; int u = s; while (true) { vis[u] = true; int v = B[u]; if (!vis[v]) ans.push_back({u, v}); else break; u = v; } } return ans; } int findSwapPairs(int N, int S[], int M, int BX[], int BY[], int P[], int Q[]) { n = N, m = M; A = S, X = BX, Y = BY; int b = 0; int e = m; while (b < e) { int x = (b+e)/2; if (check(x).size() <= x) e = x; else b = x+1; } vector<pii> way = check(b); for (int i = 0; i < n; ++i) B[A[i]] = i; for (int i = 0; i < way.size(); ++i) { swap(B[A[X[i]]], B[A[Y[i]]]); swap(A[X[i]], A[Y[i]]); int x = way[way.size()-i-1].F, y = way[way.size()-i-1].S; P[i] = B[x], Q[i] = B[y]; swap(A[B[x]], A[B[y]]); swap(B[x], B[y]); } return b; }

Compilation message (stderr)

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:47:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (check(x).size() <= x)
             ~~~~~~~~~~~~~~~~^~~~
sorting.cpp:55:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < way.size(); ++i) {
                     ~~^~~~~~~~~~~~
#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...