Submission #144746

#TimeUsernameProblemLanguageResultExecution timeMemory
144746monus1042Arranging Shoes (IOI19_shoes)C++17
25 / 100
32 ms1916 KiB
#include "shoes.h"

long long count_swaps(std::vector<int> s) {
	if (s.size()==2){
		if (s[0]<0) return 0;
		else return 1;
	}else if (s.size()<=16){
		long long counterTOT=0;
		for (int i=0; i<s.size(); i+=2){
			int j;
			if (s[i]>0){
				j=i+1;
				while(s[j]>0){
					++j;
				}
				while(i!=j){
					std::swap(s[j],s[j-1]);
					++counterTOT;
					--j;
				}
			}
			j=i+1;
			while(s[j]!=s[i]*-1){
				++j;
			}
			while(i+1!=j){
				std::swap(s[j],s[j-1]);
				++counterTOT;
				--j;
			}
		}
		return counterTOT;
	}else{
		long long x=s.size()/2 ;
		return x*(x-1)/2;
	}
}

Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:9:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i=0; i<s.size(); i+=2){
                 ~^~~~~~~~~
#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...