Submission #602936

#TimeUsernameProblemLanguageResultExecution timeMemory
602936MohamedAhmed04Art Collections (BOI22_art)C++17
50 / 100
780 ms760 KiB
#include "art.h"
#include <bits/stdc++.h>

using namespace std ;

int n ;

vector<int>v , vv ;

vector<int>get(int i , int j)
{
	vv.clear() ;
	for(int k = 0 ; k < j ; ++k)
		vv.push_back(v[k]) ;
	vv.push_back(v[i]) ;
	for(int k = j ; k < i ; ++k)
		vv.push_back(v[k]) ;
	for(int k = i+1 ; k < n ; ++k)
		vv.push_back(v[k]) ;
	return vv ;
}

void solve(int N) 
{
	n = N ;
	vector<int>v2 ;
	for(int i = 1 ; i <= n ; ++i)
		v.push_back(i) ;
	int x = publish(v) ;
	for(int i = 1 ; i < n ; ++i)
	{
		int l = 0 , r = i-1 ;
		int idx = i ;
		while(l <= r)
		{
			int mid = (l + r) >> 1 ;
			v2 = get(i , mid) ;
			if(publish(v2) == x-(i-mid))
				idx = mid , r = mid-1 ;
			else
				l = mid+1 ;
		}
		v = get(i , idx) ;
		x = publish(v) ;
	}
	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...