답안 #787715

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
787715 2023-07-19T11:35:40 Z vnm06 정렬하기 (IOI15_sorting) C++14
0 / 100
1 ms 340 KB
#include "sorting.h"
#include<bits/stdc++.h>
using namespace std;

int n;
int a[200005];
int b[200005];

int sp[2][200005], brsp=0;
int pos[200005];

int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[])
{
    n=N;
    for(int i=0; i<n; i++) a[i]=S[i];
    int le=-1, ri=M;
    for(int i=0; i<n; i++) b[i]=a[i];
    for(int i=0; i<n; i++) pos[b[i]]=i;
    for(int i=0; i<n; i++)
    {
        if(b[i]==i+1) continue;
        sp[0][brsp]=b[i];
        sp[1][brsp]=i+1;
        brsp++;
        int tp=pos[i+1];
        pos[b[i]]=pos[i+1];
        pos[i+1]=i;
        swap(b[i], b[tp]);
    }
    ri=brsp;
    for(int i=0; i<n; i++) pos[a[i]]=i;
    for(int i=0; i<brsp; i++)
    {
        P[i]=pos[sp[0][i]];
        Q[i]=pos[sp[1][i]];
        swap(pos[sp[0][i]], pos[sp[1][i]]);
        swap(a[pos[sp[0][i]]], a[pos[sp[1][i]]]);

    }
    for(int i=brsp; i<ri; i++) P[i]=Q[i]=0;
	return ri;
}



Compilation message

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:16:9: warning: unused variable 'le' [-Wunused-variable]
   16 |     int le=-1, ri=M;
      |         ^~
sorting.cpp:12:46: warning: unused parameter 'X' [-Wunused-parameter]
   12 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[])
      |                                          ~~~~^~~
sorting.cpp:12:55: warning: unused parameter 'Y' [-Wunused-parameter]
   12 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[])
      |                                                   ~~~~^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -