Submission #407396

#TimeUsernameProblemLanguageResultExecution timeMemory
407396peuchAncient Books (IOI17_books)C++17
12 / 100
1 ms264 KiB
#include "books.h"
#include<bits/stdc++.h>
using namespace std;

int n = 0;
vector<int> p;

bool caso(int a, int b, int c = -1, int d = -1){
	if(c == -1) return p[0] == a && p[1] == b;
	if(d == -1) return p[0] == a && p[1] == b && p[2] == c;
	return p[0] == a && p[1] == b && p[2] == c && p[3] == d;
}

long long minimum_walk(vector<int> _p, int s) {
	p = _p;
	n = p.size();
	if(n == 1) return 0;
	if(n == 2){
		if(caso(0, 1)) return 0;
		if(caso(1, 0)) return 2;
	}
	if(n == 3){
		if(caso(0, 1, 2)) return 0;
		if(caso(0, 2, 1)) return 4;
		if(caso(1, 0, 2)) return 2;
		if(caso(1, 2, 0)) return 4;
		if(caso(2, 0, 1)) return 4;
		if(caso(2, 1, 0)) return 4;
	}
	if(n == 4){
		if(caso(0, 1, 2, 3)) return 0;
		if(caso(0, 1, 3, 2)) return 6;
		if(caso(0, 2, 1, 3)) return 4;
		if(caso(0, 2, 3, 1)) return 6;
		if(caso(0, 3, 1, 2)) return 6;
		if(caso(0, 3, 2, 1)) return 6;
		
		if(caso(1, 0, 2, 3)) return 2;
		if(caso(1, 0, 3, 2)) return 6;
		if(caso(1, 2, 0, 3)) return 4;
		if(caso(1, 2, 3, 0)) return 6;
		if(caso(1, 3, 0, 2)) return 6;
		if(caso(1, 3, 2, 0)) return 6;
		
		if(caso(2, 0, 1, 3)) return 4;
		if(caso(2, 0, 3, 1)) return 6;
		if(caso(2, 1, 0, 3)) return 4;
		if(caso(2, 1, 3, 0)) return 6;
		if(caso(2, 3, 0, 1)) return 8;
		if(caso(2, 3, 1, 0)) return 8;
	
		if(caso(3, 0, 1, 2)) return 6;
		if(caso(3, 0, 2, 1)) return 6;
		if(caso(3, 1, 0, 2)) return 6;
		if(caso(3, 1, 2, 0)) return 6;
		if(caso(3, 2, 0, 1)) return 8;
		if(caso(3, 2, 1, 0)) return 8;
	}
}

Compilation message (stderr)

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:59:1: warning: control reaches end of non-void function [-Wreturn-type]
   59 | }
      | ^
#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...