Submission #624141

#TimeUsernameProblemLanguageResultExecution timeMemory
624141mdn2002Sorting (IOI15_sorting)C++14
0 / 100
7 ms852 KiB
#include "sorting.h" #include<bits/stdc++.h> using namespace std; int n , m , a [502] , x [20004] , y [20004] , dis [20004] , wrdis [20004] , wra [20004] , P [20004] , Q [20004]; int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) { n = N; for ( int i = 1 ; i <= n ; i ++ ) { a [i] = S [ i - 1 ]; a [i] ++; } m = M; for ( int i = 0 ; i < m ; i ++ ) { x [i] = X [i] , y [i] = Y [i]; x [i] ++ , y [i] ++; } for ( int i = 1 ; i <= n ; i ++ ) { dis [i] = i; wrdis [i] = i; } for ( int j = m - 1 ; j >= 0 ; j -- ) { swap ( dis [ x [j] ] , dis [ y [j] ] ); swap ( wrdis [ dis [ x [j] ] ] , wrdis [ dis [ y [j] ] ] ); } set < int > s; for ( int i = 1 ; i <= n ; i ++ ) { if ( dis [i] != a [i] ) { s . insert ( dis [i] ); } } int r = 0; for ( int i = 1 ; i <= m ; i ++ ) { int f = 0; for ( int j = 1 ; j <= n ; j ++ ) { if ( a [j] != j ) f = 1; } if ( f == 0 ) break; swap ( a [ x [ i - 1 ] ] , a [ y [ i - 1 ] ] ); swap ( wra [ a [ x [ i - 1 ] ] ] , wra [ a [ y [ i - 1 ] ] ] ); swap ( dis [ x [ i - 1 ] ] , dis [ y [ i - 1 ] ] ); swap ( wrdis [ dis [ x [ i - 1 ] ] ] , wrdis [ dis [ y [ i - 1 ] ] ] ); P [ i - 1 ] = -1 , Q [ i - 1 ] = -1; if ( s . size () ) { int x = * s . begin () , z = wra [x]; s . erase ( s . begin () ); swap ( a [ wrdis [x] ] , a [z] ); swap ( wra [ a [ wrdis [x] ] ] , wra [ a [z] ] ); if ( a [z] == dis [z] ) s . erase ( s . lower_bound ( dis [z] ) ); P [ i - 1 ] = wrdis [x] - 1 , Q [ i - 1 ] = z - 1; } if ( P [ i - 1 ] == -1 ) { P [ i - 1 ] = 0; Q [ i - 1 ] = 0; r ++; } } return r; }

Compilation message (stderr)

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:7:73: warning: declaration of 'Q' shadows a global declaration [-Wshadow]
    7 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
      |                                                                     ~~~~^~~
sorting.cpp:5:103: note: shadowed declaration is here
    5 | int n , m , a [502] , x [20004] , y [20004] , dis [20004] , wrdis [20004] , wra [20004] , P [20004] , Q [20004];
      |                                                                                                       ^
sorting.cpp:7:64: warning: declaration of 'P' shadows a global declaration [-Wshadow]
    7 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
      |                                                            ~~~~^~~
sorting.cpp:5:91: note: shadowed declaration is here
    5 | int n , m , a [502] , x [20004] , y [20004] , dis [20004] , wrdis [20004] , wra [20004] , P [20004] , Q [20004];
      |                                                                                           ^
sorting.cpp:62:17: warning: declaration of 'x' shadows a global declaration [-Wshadow]
   62 |             int x = * s . begin () , z = wra [x];
      |                 ^
sorting.cpp:5:23: note: shadowed declaration is here
    5 | int n , m , a [502] , x [20004] , y [20004] , dis [20004] , wrdis [20004] , wra [20004] , P [20004] , Q [20004];
      |                       ^
#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...