CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:kapesu8
Submission time:2016-10-09 20:51:19 +0300
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp:5:21: fatal error: Windows.h: No such file or directory
 #include <Windows.h>
                     ^
compilation terminated.

Code

#include <iostream>
#include <string>
#include <math.h>
#include <vector>
#include <Windows.h>

#define max(a,b) (a > b ? a : b)

int main()
{
	int proc_counter = 0;
	int count;
	std::cin >> count;
	int* numbers = new int[count+1];
	int* numbers_indices = new int[count + 1]; 
	int* numbers_indices_ro = new int[count + 1];
	int* klist = new int[count*4];
	int klist_top = 0;
	DWORD t = timeGetTime();
	for(int i = 1;i <= count;i++)
	{
		std::cin >> numbers[i];
		//numbers[i] = count - i + 1;
		numbers_indices[numbers[i]] = i;
		numbers_indices_ro[i] = numbers[i];
		
	}
	for(int n = count;n >= 1;n--) //<=2n siirtoa ratkaisuun
	{
		/*if(n == count)
		{
			klist[klist_top] = (numbers_indices[n]);
			klist_top++;
		}
		else                    
		{
			int fa_index = numbers_indices[n];
			klist[klist_top] = fa_index;
			klist_top++;

		}*/
		klist[klist_top] = numbers_indices[n];
		klist_top++;
		klist[klist_top] = n;
		klist_top++;
		klist[klist_top] = max(n-1,1);
		klist_top++;
		klist[klist_top] = max(numbers_indices[n]-1,1);
		klist_top++;

		proc_counter++;
		//update indices for i > numbers_indices[n]

		for(int i = numbers_indices[n] + 1;i < n+1;i++)
		{
			numbers_indices[numbers_indices_ro[i]]--;
			numbers_indices_ro[i-1] = numbers_indices_ro[i];
		}


		/*for(int i = 1;i < n;i++)        
		{
			
			if(numbers_indices[i] <= numbers_indices[n])
			{
				numbers_indices[i] = numbers_indices[n] - numbers_indices[i] + 1;
			}
			numbers_indices[i] = n - numbers_indices[i] + 1;
		}*/

	}
	std::cout << klist_top << '\n';
	//std::cout << "proc_counter = " << proc_counter << ",time: " << timeGetTime() - t << "ms";
	for(int i = 0;i < klist_top;i++)
	{
		std::cout << klist[i] << ' ';
	}
	std::cin.clear();
	std::cin.sync();
	std::cin.get();
	return 0;
}