답안 #587663

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
587663 2022-07-02T07:58:46 Z cfalas Art Collections (BOI22_art) C++17
0 / 100
3000 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);
	int mo[n] = {};
	while(init!=0){
		for(int i=1;i<n;i++) {
			if(mo[i]) continue;
			swap(order[i], order[i-1]);
			int ne = publish(order);
			if(ne < init){
				init = ne;
			}
			else swap(order[i], order[i-1]), mo[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) {
      |        ~~~~~~~~~^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Execution timed out 3065 ms 208 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Execution timed out 3065 ms 208 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Execution timed out 3065 ms 208 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Execution timed out 3065 ms 208 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Execution timed out 3065 ms 208 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Execution timed out 3065 ms 208 KB Time limit exceeded
6 Halted 0 ms 0 KB -