Submission #317928

# Submission time Handle Problem Language Result Execution time Memory
317928 2020-10-30T20:26:57 Z keta_tsimakuridze Sorting (IOI15_sorting) C++14
0 / 100
1 ms 384 KB
#include<bits/stdc++.h>
#define f first
#define s second
#include "sorting.h"
using namespace std;
int findSwapPairs(int N, int A[], int M, int x[], int y[], int P[], int Q[]) {
    int l=3; int r=3;
    std::vector<std::pair<int,int> > V,ans;
    int a[N+5],ind[N+5];
    while(l<=r){
    	V.clear();
    	int mid=(l+r)/2;
    	for(int i=0;i<N;i++){
    		ind[A[i]]=i;
    		a[i]=A[i];
		}
		for(int i=0;i<mid;i++){
			std::swap(a[x[i]],a[y[i]]);
		}
		for(int i=0;i<N;i++){
			ind[a[i]]=i;
		}	
		
		for(int i=0;i<N;i++){
			if(a[i]!=i){
			V.push_back(std::make_pair(a[i],i));
				std::swap(a[i],a[ind[i]]);		
				std::swap(ind[a[ind[i]]],ind[i]);	
			}
		}
	
		for(int i=0;i<N;i++){
			a[i]=A[i];
			ind[a[i]]=i;
		}
		if(V.size()<=mid) {
			ans.clear(); 
			for(int i=0;i<mid;i++){
			std::swap(ind[a[x[i]]],ind[a[y[i]]]);
			std::swap(a[x[i]],a[y[i]]);
			if(i<V.size() ){
				// V[i].f V[i].s 
				swap(ind[V[i].f],ind[V[i].s]);
				swap(a[ind[V[i].f]],a[ind[V[i].s]]);
				ans.push_back(make_pair(ind[V[i].f],ind[V[i].s]));
			}
			else ans.push_back(make_pair(0,0));
		}
			
			r=mid-1;
		}
		else l=mid+1;
	} 
	for(int i=0;i<ans.size();i++){
	P[i]=ans[i].first;
	Q[i]=ans[i].second;
	}
	return ans.size();
}

Compilation message

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:36:14: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |   if(V.size()<=mid) {
      |      ~~~~~~~~^~~~~
sorting.cpp:41:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |    if(i<V.size() ){
      |       ~^~~~~~~~~
sorting.cpp:54:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |  for(int i=0;i<ans.size();i++){
      |              ~^~~~~~~~~~~
sorting.cpp:58:17: warning: conversion from 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   58 |  return ans.size();
      |         ~~~~~~~~^~
sorting.cpp:6:39: warning: unused parameter 'M' [-Wunused-parameter]
    6 | int findSwapPairs(int N, int A[], int M, int x[], int y[], int P[], int Q[]) {
      |                                   ~~~~^
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -