Submission #719957

#TimeUsernameProblemLanguageResultExecution timeMemory
719957mariowongArt Collections (BOI22_art)C++17
100 / 100
1767 ms648 KiB
#include <vector>
/**
 * returns how many complaints you will receive for this ordering of the art collections
 */
int publish(std::vector<int>);

/**
 * use this function when you have found the correct order of the art collections
 * You must call answer exactly once; your program will be automatically
 * terminated afterwards.
 */
void answer(std::vector<int>);

/**
 * implement this function
 */
std::vector <int> v;
void solve(int N){
	v.clear();
	for (int i=1;i<=N;i++) v.push_back(i);
	int l=publish(v);
	for (int i=2;i<=N;i++){
		std::vector <int> q;
		q.push_back(i);
		for (int j=0;j<N;j++){
			if (v[j] != i) q.push_back(v[j]);
		}
		int val=publish(q);
		int pos=-1;
		for (int j=i-1;j>=0;j--){
			if (val == l-j+(i-1-j)) pos=i-1-j;
		}
		for (int j=i-1;j>pos;j--){
			v[j]=v[j-1];
		}
		v[pos]=i;
		l=val-pos;
	}
	answer(v);
		
}

Compilation message (stderr)

interface.cpp: In function 'int publish(std::vector<int>)':
interface.cpp:20:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
interface.cpp: In function 'void answer(std::vector<int>)':
interface.cpp:36:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
#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...