Cod sursa(job #147852)

Utilizator scvalexAlexandru Scvortov scvalex Data 3 martie 2008 17:30:41
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>

using namespace std;

int N,
	A[5000],
	temp[5000],
	M,
	C[5000];

int main(int argc, char *argv[]) {
	FILE *fi = fopen("secv.in", "r");
	fscanf(fi, "%d", &N);
	for (int i(0); i < N; ++i)
		fscanf(fi, "%d", &A[i]);
	fclose(fi);

	memcpy(temp, A, sizeof(A));
	sort(temp, temp + N);

	int last = -1;
	for (int i(0); i < N; ++i)
		if (temp[i] != last)
			last = C[M++] = temp[i];

	/*for (int i(0); i < M; ++i)
		cout << C[i] << " ";
	cout << endl;*/

	int j,
		k;
	unsigned int min(-1);
	for (int i(0); i < N; ++i)
		if (A[i] == C[0]) {
			j = 0;
			for (k = 0; ((i + k < N) && (j < M)); ++k)
				if (A[i + k] == C[j])
					++j;
			if ((j == M) && (k < min))
				min = k;
		}
		
	ofstream fout("secv.out");
	fout << min << endl;
	fout.close();

	return 0;
}