Cod sursă (job #143638)

Utilizator avatar spatarel Spatarel Dan-Constantin spatarel IP ascuns
Problemă Sport2 (lot liceu) Compilator cpp | 0,85 kb
Rundă Status evaluat
Dată 20 apr. 2015 20:44:14 Scor ascuns
#include <stdio.h>
#include <algorithm>

using namespace std;

#define MAXN 50

int A[MAXN];
bool Ok[MAXN];
int N, T;
long long K;
bool Stop;
int dir, poz;

int main()
{
	freopen("sport2.in","r",stdin);
	freopen("sport2.out","w",stdout);
	
	for (scanf("%d", &T); T; --T){
		scanf("%d", &N);
		for (int i = 1; i <= N; ++i)
			scanf("%d", &A[i]);
		
		Stop = false;
		for (K = 1; !Stop; ++K){
			Stop = true;
			
			for (int i = 1; i <= N; ++i)
				Ok[i] = false;
			
			poz = 0; dir = 1;
			for (int i = 1; i <= N; ++i){
				for (int j = 1; j <= K; ++j)
					do{
						poz += dir;
						if (poz == N + 1){ poz = N; dir = -1;}
						if (poz == 0) { poz = 1; dir = 1;}
					}while (Ok[poz]);
				Ok[poz] = true;
				if (poz != A[i]){
					Stop = false;
					break;
				}
			}
		}
		printf("%d\n", K - 1);
	}
	
	return 0;
}