| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 940841 | Doncho_Bonboncho | Super Dango Maker (JOI22_dango3) | C++17 | 10038 ms | 604 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "dango3.h"
#include <bits/stdc++.h>
   
using namespace std;
#ifndef LOCAL
#define cerr if(false)cerr
#endif
#define out(x) #x << " = " << x << "  "
int n;
void f( int currBr, std::vector< int > v ){
	if( currBr == 1 ){
		if( v.size() != n ) while( true );
		Answer( v );
		return;
	}
	int l = 0, r = v.size();
	while( l != r-1 ){
		std::vector< int > V;
		int m = ( l + r ) >> 1;
		for( int i=0 ; i <= m ; i++ ) V.push_back( v[i] );
		if( Query( V ) < currBr/2 ) l = m;
		else r = m;
	}
	std::vector< int > firRet;
	std::vector< int > secRet;
	for( int i=0 ; i <= r ; i++ ) firRet.push_back( v[i] );
	for( int i=r+1 ; i < v.size() ; i++ ) secRet.push_back( v[i] );
	for( int i=0 ; i < firRet.size() ; i++ ){
		int currRem = firRet[i];
		std::swap( firRet[i], firRet[firRet.size() -1] );
		firRet.pop_back();
		if( Query( firRet ) != currBr/2 ){
			firRet.push_back( currRem );
			std::swap( firRet[i], firRet[firRet.size() -1] );
		}else secRet.push_back( currRem );
	}
	f( currBr /2, firRet );
	f( currBr - currBr /2, secRet );
}
void Solve(int N, int M) {
	
	n = N;
	std::vector< int > v;
	for( int i=1 ; i<=N*M ; i++ ) v.push_back( i );
	f( M, v );
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
