제출 #1016871

#제출 시각아이디문제언어결과실행 시간메모리
1016871vjudge1Arranging Shoes (IOI19_shoes)C++17
15 / 100
26 ms3244 KiB
#include "shoes.h"
#include <bits/stdc++.h>

using namespace std;

bool check(vector<int> &x){

	for(int i = 1; i < x.size(); i += 2){

		if((x[i-1] < x[i]) && (x[i-1]*-1 == x[i])) continue;
		else return false;

	}

	return true;

}

vector<vector<int>> moves(vector<int> &a){

	vector<vector<int>> ans;

	for(int i = 1; i < a.size(); ++i){

		vector<int> temp(a.begin(), a.end());
		swap(temp[i-1], temp[i]);
		ans.push_back(temp);

	}

	return ans;

}

long long bfs(vector<int> &src){

	set<vector<int>> visited;
	map<vector<int>, long long> dist;

	queue<vector<int>> q;
	visited.insert(src);
	dist[src] = 0;
	q.push(src);

	while(!q.empty()){

		vector<int> act = q.front(); q.pop();

		if(check(act)) return dist[act];

		for(auto &move : moves(act)){

			if(visited.count(move)) continue;

			dist[move] = dist[act] + 1;
			visited.insert(move);
			q.push(move);


			if(check(move)) return dist[move];
		}
	}

}

long long count_swaps(std::vector<int> s) {

	//return bfs(s);

	long long ans = 0;

	for(int i = 1; i < s.size()/2; ++i) ans += i;

	return ans;
}

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

shoes.cpp: In function 'bool check(std::vector<int>&)':
shoes.cpp:8:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    8 |  for(int i = 1; i < x.size(); i += 2){
      |                 ~~^~~~~~~~~~
shoes.cpp: In function 'std::vector<std::vector<int> > moves(std::vector<int>&)':
shoes.cpp:23:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  for(int i = 1; i < a.size(); ++i){
      |                 ~~^~~~~~~~~~
shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:72:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |  for(int i = 1; i < s.size()/2; ++i) ans += i;
      |                 ~~^~~~~~~~~~~~
shoes.cpp: In function 'long long int bfs(std::vector<int>&)':
shoes.cpp:37:19: warning: control reaches end of non-void function [-Wreturn-type]
   37 |  set<vector<int>> visited;
      |                   ^~~~~~~
#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...