Cod sursa(job #1220805)

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


int main()
{
    //*declarare
    FILE *hFileIn , *hFileOut;
    int n , a[100] , dub , nr ;
    int i , imin , imax, iamin , iamax;


    //*preinit    
    i = 0;
    imin = 0;   iamin = 0;
    imax = 0 ;  iamax = 0;
    dub=0; 

    //*init
    hFileIn = fopen( "scmax.in" , "r" );       
    if( hFileIn == NULL )
    {
       // wprintf(L"[error] could not open input file \nexiting \n");
        return 1;
    }

    hFileOut = fopen( "scmax.out" , "w" );   
    if( hFileOut == NULL )
    {
       // wprintf(L"[error] could not create output file \nexiting \n");
        return 1;
    }

    
    //*use   
    if(fscanf(hFileIn , "%d" , &n)); //read n from file 

    if(fscanf(hFileIn , "%d" , &a[0])); //read 1st nr from file 
    iamin = 0;

    for( i=1 ; i < n ; i++) //read numbers from file
    {
        if(fscanf( 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(hFileOut , "%d\n" , imax-imin+1);
    for( i=imin ; i <= imax ; i++)
        fprintf(hFileOut , "%d " , a[i]);
    //*cleanup

 
	return 0;
}