int _tmain(int argc, _TCHAR* argv[])
{
	long long fib[40];
	time_t begin, end;
	time(&begin);

	#pragma omp parallel
	{
		#pragma omp for ordered schedule(static,1)
		for (int i = 0; i < 40; i++){
			fib[i] = fibonachi(i);
			#pragma omp ordered
			{
				printf("%i ", fib[i]);
			}
		}
	}
	time(&end);

	printf("%f\n", difftime(end, begin));

	return 0;
}
int fibonachi(int n)
{
    return fibonachi(n,1,0,0);
}
int fibonachi(int n, int before, int after, int cont)
{
    if(cont<=n)
        return fibonachi(n, after, after+before, cont+1);
    return before;
}
long long  fibonachi(long int n)
{
	if (n == 0 || n == 1)
		return 1;
	return fibonachi(n - 1) + fibonachi(n - 2);
}