#include "stdafx.h"
#include <windows.h>
#include "stdio.h"
#include "time.h"
#include <iostream>
using namespace std;
#include "strsafe.h"
#define BUFFERSIZE 150
int wmain(int argc, WCHAR* argv[])
{
//*declarare
FILE *hFileIn , *hFileOut;
DWORD n , a[100] , dub , nr ;
__int8 i , imin , imax, iamin , iamax;
//*preinit
i = 0;
imin = 0; iamin = 0;
imax = 0 ; iamax = 0;
dub=0;
//*init
_wfopen_s( &hFileIn , L"scmax.in" , L"r" );
if( hFileIn == NULL )
{
wprintf(L"[error] could not open input file \nexiting \n");
return 1;
}
_wfopen_s( &hFileOut , L"scmax.out" , L"w" );
if( hFileOut == NULL )
{
wprintf(L"[error] could not create output file \nexiting \n");
return 1;
}
//*use
fscanf_s(hFileIn , "%d" , &n); //read n from file
fscanf_s(hFileIn , "%d" , &a[0]); //read 1st nr from file
iamin = 0;
for( i=1 ; i < n ; i++) //read numbers from file
{
fscanf_s( hFileIn , "%d" , &nr);
if( nr == a[i-1-dub] )
{
dub ++;
}
else
{
a[i-dub] = nr;
}
if( a[i-dub] > a[i-dub-1] )//subsirul creste
{
iamax = i-dub;
}
else//subsirul a luat sfarsit
{
iamin = i-dub;
}
if(imax-imin < iamax-iamin)//ultimul subsir mai lung decat penultimul
{
imax = iamax;
imin = iamin;
}
}
//write file
fprintf_s(hFileOut , "%d\n" , imax-imin+1);
for( i=imin ; i <= imax ; i++)
fprintf_s(hFileOut , "%d " , a[i]);
//*cleanup
return 0;
}