Cod sursa(job #110273)

Utilizator wefgefAndrei Grigorean wefgef Data 26 noiembrie 2007 00:25:12
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <vector>
using namespace std;

#define pb push_back
#define sz(c) int((c).size())

int N;
vector<int> A, B;

void Scrie(vector<int> &A) {
	printf("%d\n", sz(A));
	for (int i = 0; i < sz(A); ++i)
		printf("%d ", A[i]);
	printf("\n");
}

void Solve(int start, int N) {
	for (int i = start, cnt = 0; i <= N; ++i, cnt = (cnt+1) % 4)
		if (cnt == 0 || cnt == 3) A.pb(i);
		else B.pb(i);
	Scrie(A); Scrie(B); 
}

int main() {
	freopen("multimi2.in", "r", stdin);
	freopen("multimi2.out", "w", stdout);
	
	scanf("%d", &N);
	switch (N % 4) {
		case 0: printf("0\n"); Solve(1, N); break;
		case 1: printf("1\n"); A.pb(1); Solve(2, N); break;
		case 2: printf("1\n"); A.pb(1); B.pb(2); Solve(3, N); break;
		case 3: printf("0\n"); A.pb(1); A.pb(2); B.pb(3); Solve(4, N); break;
	}
}