Submission #415235

#TimeUsernameProblemLanguageResultExecution timeMemory
415235peuchArranging Shoes (IOI19_shoes)C++17
30 / 100
1091 ms1048580 KiB
#include "shoes.h"
#include<bits/stdc++.h>
using namespace std;

long long ans = 1e18;

void bt(int cur, vector<int> ord, long long sum){
	if(sum >= ans) return;
	if(cur == ord.size()){
		ans = sum;
		return;
	}
	vector<int> oriOrd = ord;
	long long oriSum = sum;
	for(int i = cur; i < ord.size(); i++){
		if(ord[i] < 0){	
			int j = i;
			while(i > cur){
				swap(ord[i], ord[i - 1]);
				i--;
				sum++;
			}
			for(i = cur + 1; ord[i] != abs(ord[cur]); i++);
			while(i > cur + 1){
				swap(ord[i], ord[i - 1]);
				i--;
				sum++;
			}
			bt(cur + 2, ord, sum);
			ord = oriOrd;
			sum = oriSum;
			i = j;
		}
	}
}

long long count_swaps(std::vector<int> s) {
//	for(int i = 0; i < s.size(); i++){
//		for(int j = i; j < s.size(); j++){
//			if(s[j] < 0){
//				while(j > i){
//					swap(s[j], s[j - 1]);
//					j--;
//					ans++;
//				}
//				break;
//			}
//		}
//		int val = abs(s[i]);
//		i++;
//		for(int j = i; j < s.size(); j++){
//			if(s[j] == val){
//				while(j > i){
//					swap(s[j], s[j - 1]);
//					j--;
//					ans++;
//				}
//				break;
//			}
//		}
//	}
//	for(int i = 0; i < s.size(); i++){
//		printf("%d ", s[i]);
//	}
//	printf("\n");
	bt(0, s, 0);
	return ans;
}

Compilation message (stderr)

shoes.cpp: In function 'void bt(int, std::vector<int>, long long int)':
shoes.cpp:9:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |  if(cur == ord.size()){
      |     ~~~~^~~~~~~~~~~~~
shoes.cpp:15:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |  for(int i = cur; i < ord.size(); 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...