Submission #587576

# Submission time Handle Problem Language Result Execution time Memory
587576 2022-07-02T05:55:34 Z cfalas Art Collections (BOI22_art) C++17
5 / 100
59 ms 208 KB
#include "art.h"
#include<bits/stdc++.h>
using namespace std;
//
// --- Sample implementation for the task art ---
//
// To compile this program with the sample grader, place:
//     art.h art_sample.cpp sample_grader.cpp
// in a single folder, then open the terminal in this directory (right-click onto an empty spot in the directory,
// left click on "Open in terminal") and enter e.g.:
//     g++ -std=c++17 art_sample.cpp sample_grader.cpp
// in this folder. This will create a file a.out in the current directory which you can execute from the terminal
// as ./a.out
// See task statement or sample_grader.cpp for the input specification
//
#define F first
#define S second

void solve_bf(int n){
	vector<int> order;
	for(int i=0;i<n;i++) order.push_back(i+1);
	do{
		int x = publish(order);
		if(x==0){
			answer(order);
			return;
		}
	} while(next_permutation(order.begin(), order.end()));
}

void solve(int n) {
	if(n<=6){
		solve_bf(n);
		return;
	}
    vector<int> order(n);
	for(int i=0;i<n;i++) order[i] = i+1;
	vector<pair<int, int> > ans(n);
    ans[0] = {publish(order), 1};
	//cout<<ans[0].F<<" "<<ans[0].S<<endl;
	for(int i=1;i<n;i++){
		swap(order[0], order[i]);
		ans[i] = {publish(order), i+1};
		swap(order[0], order[i]);
		//cout<<ans[i].first<<" "<<ans[i].second<<endl;
	}
	sort(ans.begin(), ans.end());
	for(int i=0;i<n;i++) order[i] = ans[i].S;
	///for(int i=0;i<n;i++) cout<<ans[i].S<<" ";
	int init = publish(order);
	while(init!=0){
		for(int i=1;i<n;i++) {
			if(ans[i].F==ans[i-1].F){
				swap(order[i], order[i-1]);
				int ne = publish(order);
				if(ne < init){
					init = ne;
				}
				else swap(order[i], order[i-1]);
			}
		}
	}
	//cout<<publish(order)<<endl;
    answer(order);
}

Compilation message

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 time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 8 ms 208 KB Output is correct
4 Correct 0 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 3 ms 208 KB Output is correct
7 Correct 5 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 8 ms 208 KB Output is correct
4 Correct 0 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 3 ms 208 KB Output is correct
7 Correct 5 ms 208 KB Output is correct
8 Correct 0 ms 208 KB Output is correct
9 Incorrect 59 ms 208 KB Not correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 8 ms 208 KB Output is correct
4 Correct 0 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 3 ms 208 KB Output is correct
7 Correct 5 ms 208 KB Output is correct
8 Correct 0 ms 208 KB Output is correct
9 Incorrect 59 ms 208 KB Not correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 8 ms 208 KB Output is correct
4 Correct 0 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 3 ms 208 KB Output is correct
7 Correct 5 ms 208 KB Output is correct
8 Correct 0 ms 208 KB Output is correct
9 Incorrect 59 ms 208 KB Not correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 8 ms 208 KB Output is correct
4 Correct 0 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 3 ms 208 KB Output is correct
7 Correct 5 ms 208 KB Output is correct
8 Correct 0 ms 208 KB Output is correct
9 Incorrect 59 ms 208 KB Not correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 8 ms 208 KB Output is correct
4 Correct 0 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 3 ms 208 KB Output is correct
7 Correct 5 ms 208 KB Output is correct
8 Correct 0 ms 208 KB Output is correct
9 Incorrect 59 ms 208 KB Not correct
10 Halted 0 ms 0 KB -