Cod sursa(job #1220803)

Utilizator tedyy91razvan teslaru tedyy91 Data 18 august 2014 16:34:55
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.58 kb
#include "stdio.h"


int main()
{
    //*declarare
    FILE *hFileIn , *hFileOut;
    int 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;
}