Submission #245743


Source Code Expand

#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <map>
#include <set>
#include <string>
#include <vector>

#define REP(i,s,n) for(int i=(int)(s);i<(int)(n);i++)

using namespace std;
typedef long long int ll;
const double EPS=1e-9;

const int N=10010;
const int DEBUG = 0;

int n;
int r[N];

vector<int> pile[3];
vector<pair<int,int> > motions;

void mv(int a,int b) {
	motions.push_back(pair<int,int>(a,b));
	int t = pile[a-1].back();
	pile[a-1].pop_back();
	pile[b-1].push_back(t);
}
int top(int a) {
	return pile[a-1].back();
}

void out() {
	cout << motions.size() << endl;
	REP(i,0,motions.size()) {
		pair<int,int> r = motions[i];
		cout << r.first << " "  << r.second << endl;
	}
}

void qs(int st,int en,int from, int to, int d) {
	if(en == st) {
		mv(from,to);
		return;
	}
	if(en < st) {return;}
	int piv = (st + en + 1) / 2;
	int d2 = 6 - from - to;
	REP(c,st,en+1) {
		int t = top(from);
		if(t >= piv) {
			mv(from, d ? to :d2);
		} else {
			mv(from, d ? d2 :to);
		}
	}
	if(d ==0 ) {
		qs(st,piv-1,to,from,1-d);
		qs(piv,en,d2,to,d);
		REP(i,st, piv) mv(from, to);
	} else {
		qs(piv,en,to,from,0);
		qs(st,piv-1,d2,to,1);
		REP(i,piv,en+1) mv(from,to);
	}
}

int main(void){
	cin>>n;
	REP(i,0,n) {
		cin>>r[i];
		pile[0].push_back(r[i]);
	}
	qs(1,n,1,2,0);
	out();
	if(DEBUG) {
		REP(i,0,3) {
			cout << "pile[" << i << "]:";
			REP(j,0,pile[i].size()) {
				cout << pile[i][j] << " ";
			}
			cout << endl;
		}
	}
}

Submission Info

Submission Time
Task G - ノイハの塔
User kobae964
Language C++ (G++ 4.6.4)
Score 100
Code Size 1596 Byte
Status AC
Exec Time 583 ms
Memory 3644 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 2
AC × 21
AC × 40
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt
Subtask2 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt
Case Name Status Exec Time Memory
sample_01.txt AC 164 ms 1220 KB
sample_02.txt AC 32 ms 1304 KB
subtask1_01.txt AC 33 ms 1176 KB
subtask1_02.txt AC 43 ms 1428 KB
subtask1_03.txt AC 33 ms 1176 KB
subtask1_04.txt AC 36 ms 1176 KB
subtask1_05.txt AC 36 ms 1304 KB
subtask1_06.txt AC 43 ms 1300 KB
subtask1_07.txt AC 44 ms 1308 KB
subtask1_08.txt AC 36 ms 1296 KB
subtask1_09.txt AC 42 ms 1300 KB
subtask1_10.txt AC 47 ms 1424 KB
subtask1_11.txt AC 46 ms 1304 KB
subtask1_12.txt AC 45 ms 1304 KB
subtask1_13.txt AC 47 ms 1308 KB
subtask1_14.txt AC 47 ms 1432 KB
subtask1_15.txt AC 45 ms 1300 KB
subtask1_16.txt AC 47 ms 1432 KB
subtask1_17.txt AC 46 ms 1300 KB
subtask1_18.txt AC 46 ms 1308 KB
subtask1_19.txt AC 46 ms 1300 KB
subtask2_01.txt AC 215 ms 2480 KB
subtask2_02.txt AC 133 ms 1844 KB
subtask2_03.txt AC 148 ms 1840 KB
subtask2_04.txt AC 410 ms 3644 KB
subtask2_05.txt AC 567 ms 3464 KB
subtask2_06.txt AC 576 ms 3468 KB
subtask2_07.txt AC 578 ms 3468 KB
subtask2_08.txt AC 569 ms 3472 KB
subtask2_09.txt AC 577 ms 3464 KB
subtask2_10.txt AC 561 ms 3476 KB
subtask2_11.txt AC 570 ms 3464 KB
subtask2_12.txt AC 565 ms 3460 KB
subtask2_13.txt AC 564 ms 3488 KB
subtask2_14.txt AC 567 ms 3464 KB
subtask2_15.txt AC 555 ms 3592 KB
subtask2_16.txt AC 583 ms 3456 KB
subtask2_17.txt AC 574 ms 3592 KB
subtask2_18.txt AC 577 ms 3464 KB
subtask2_19.txt AC 549 ms 3464 KB