#include <iostream>
using namespace std;

const unsigned int NUMELEM = 20;
const unsigned int THREADCNT = 6;

int Data[NUMELEM];

void DoStuff( unsigned int const& thid )
{
	cout<<"ThID:"<<thid<<endl;
	const unsigned numTasks = NUMELEM/THREADCNT, numTougherThreads = NUMELEM%THREADCNT;
	for( unsigned int index0 = (thid < numTougherThreads ? thid * (numTasks+1) : NUMELEM - (THREADCNT - thid) * numTasks), index = index0; index < index0 + numTasks + (thid < numTougherThreads) ; ++index)
	{
		cout<<"Data["<<index<<"], ";
	}
	cout<<endl;
}

int main() 
{
	for( unsigned int thid = 0; thid != THREADCNT; thid++)
	{
		// TBU: Make multithreaded
		DoStuff( thid );
	}
	
	return 0;
}