제출 #419025

#제출 시각아이디문제언어결과실행 시간메모리
419025jacquesamselArranging Shoes (IOI19_shoes)C++14
0 / 100
1 ms204 KiB
#include <bits/stdc++.h>
using namespace std;
#define vint vector<int>
#define vvint vector<vint>

void print_vint(vint a) {
	for (auto x : a) cout << x << " ";
	cout << endl;
}
void print_vvint(vvint a) {
	cout << "-----" << endl;
	for (int i = 0; i < a.size(); i++) {
		print_vint(a[i]);
	}
	cout << "-----" << endl;
}

vint swap(vint& in, int pos) {
	vint a = vint(in.begin(), in.end());
	swap(a[pos], a[pos+1]);
	return a;
}

bool vint_done(vint a) {
	for (int i = 0; i < (a.size())/2; i++) {
		if (a[i*2] > 0 || a[i*2] != -a[i*2+1]) return false;
	}
	return true;
}

long long count_swaps(vector<int> s) {
	vvint book;
	vvint newBook;
	book.push_back(s);
	long long counter = 0;
	while (true) {
		for (auto b : book) {
			// cout << "based off";
			// print_vint(b);
			for (int i = 0; i < s.size()-1; i++) {
				vint state = swap(b, i);
				// print_vint(state);
				if (vint_done(state)) {
					// cout << "CORRECT";
					// print_vint(state);
					return counter+1;
				}
				newBook.push_back(state);
			}
		}
		book = newBook;
		newBook = {};
		// cout << "ADD COUNTER" << endl;
		counter++;
	}
}

컴파일 시 표준 에러 (stderr) 메시지

shoes.cpp: In function 'void print_vvint(std::vector<std::vector<int> >)':
shoes.cpp:12:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |  for (int i = 0; i < a.size(); i++) {
      |                  ~~^~~~~~~~~~
shoes.cpp: In function 'bool vint_done(std::vector<int>)':
shoes.cpp:25:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |  for (int i = 0; i < (a.size())/2; i++) {
      |                  ~~^~~~~~~~~~~~~~
shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:40:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |    for (int i = 0; i < s.size()-1; 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...