Submission #524565

#TimeUsernameProblemLanguageResultExecution timeMemory
524565LoboSorting (IOI15_sorting)C++17
36 / 100
1 ms684 KiB
#include "sorting.h" #include<bits/stdc++.h> using namespace std; const long long inf = (long long) 1e18 + 10; const int inf1 = (int) 1e9 + 10; #define int long long #define dbl long double #define endl '\n' #define sc second #define fr first #define mp make_pair #define pb push_back #define all(x) x.begin(), x.end() #define maxn 55000 int n, m, a[maxn], pos[maxn], s1[maxn], s2[maxn]; int32_t findSwapPairs(int32_t N, int32_t S[], int32_t M, int32_t X[], int32_t Y[], int32_t P[], int32_t Q[]) { n = N; m = M; for(int i = 0; i < n; i++) { a[i] = S[i]; pos[a[i]] = i; } for(int i = 0; i < m; i++) { s1[i] = X[i]; s2[i] = Y[i]; } int32_t R = 0; if(Y[0] != 1) { for(int i = 0; i < n; i++) { if(pos[i] != i) { //swap a[i] and a[pos[i]] P[R] = i; Q[R] = pos[i]; //pos[i] = i //pos[a[i]] = pos[i] swap(pos[i],pos[a[i]]); swap(a[P[R]],a[Q[R]]); R++; } } } else { //colocar 0 na posicao 0 e 1 na pos 1 //colocar 0 na posicao 0 swap(pos[a[0]],pos[a[1]]); swap(a[0],a[1]); P[R] = 0; Q[R] = pos[0]; //pos[i] = i //pos[a[i]] = pos[i] swap(pos[0],pos[a[0]]); swap(a[P[R]],a[Q[R]]); R++; //colocar 1 na posicao 0 swap(pos[a[0]],pos[a[1]]); swap(a[0],a[1]); P[R] = 0; Q[R] = pos[1]; //pos[i] = i //pos[a[i]] = pos[i] swap(pos[a[0]],pos[1]); swap(a[P[R]],a[Q[R]]); R++; for(int i = 2; i < n; i++) { if(pos[i] != i) { //swap a[i] and a[pos[i]] swap(pos[a[0]],pos[a[1]]); swap(a[0],a[1]); P[R] = i; Q[R] = pos[i]; //pos[i] = i //pos[a[i]] = pos[i] swap(pos[i],pos[a[i]]); swap(a[P[R]],a[Q[R]]); R++; } } if(a[0] == 1) { swap(pos[a[0]],pos[a[1]]); swap(a[0],a[1]); P[R] = 0; Q[R] = 0; //pos[i] = i //pos[a[i]] = pos[i] R++; } } return R; }

Compilation message (stderr)

sorting.cpp: In function 'int32_t findSwapPairs(int32_t, int32_t*, int32_t, int32_t*, int32_t*, int32_t*, int32_t*)':
sorting.cpp:38:24: warning: conversion from 'long long int' to 'int32_t' {aka 'int'} may change value [-Wconversion]
   38 |                 P[R] = i;
      |                        ^
sorting.cpp:39:29: warning: conversion from 'long long int' to 'int32_t' {aka 'int'} may change value [-Wconversion]
   39 |                 Q[R] = pos[i];
      |                        ~~~~~^
sorting.cpp:56:21: warning: conversion from 'long long int' to 'int32_t' {aka 'int'} may change value [-Wconversion]
   56 |         Q[R] = pos[0];
      |                ~~~~~^
sorting.cpp:68:21: warning: conversion from 'long long int' to 'int32_t' {aka 'int'} may change value [-Wconversion]
   68 |         Q[R] = pos[1];
      |                ~~~~~^
sorting.cpp:80:24: warning: conversion from 'long long int' to 'int32_t' {aka 'int'} may change value [-Wconversion]
   80 |                 P[R] = i;
      |                        ^
sorting.cpp:81:29: warning: conversion from 'long long int' to 'int32_t' {aka 'int'} may change value [-Wconversion]
   81 |                 Q[R] = pos[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...