Cod sursa(job #1209686)

Utilizator GligaEugenConstantinGliga Eugen GligaEugenConstantin Data 18 iulie 2014 12:36:19
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 2.68 kb
#include <stdlib.h>
#include <stdio.h>

using namespace std;

int main()
{
    int maxAscendingSubarray[1000];
    int i;
    int startIndex;
    int finalStartIndex;
    int nrValues;
    FILE *infile;
    FILE *outfile;
    int nr1;
    int nr2;
    int maxDif; //i - startIndex
    int tempMaxDif;
    infile = fopen ("scmax.in","r");
    if (infile != NULL)
    {
        if(fscanf(infile, "%d", &nrValues));
        if(fscanf(infile, "%d", &nr1));
        
        i = 0;
        maxDif = 0;
        tempMaxDif = 0;
        while(i< nrValues - 1)
        {
            
            if(fscanf(infile, "%d", &nr2));
            if(nr1 < nr2)
            {
                startIndex = i;
                printf("%d ", i);
                while (nr1 < nr2)
                {
                    nr1 = nr2;
                    if(fscanf(infile, "%d", &nr2));
                    i++;
                    
                }
           
                printf("%d perechea pt i de sus\n", i++);
                tempMaxDif = i - startIndex;
                printf("%d\n", tempMaxDif);
                if(tempMaxDif > maxDif)
                {
                    maxDif = tempMaxDif;
                    finalStartIndex = startIndex;
                }
            }
            else 
            {
                nr1 = nr2;
                i++;

            }    
        }
    fclose(infile);
    }

    printf("%d\n", finalStartIndex);
    printf("%d\n", maxDif);

    outfile = fopen ("scmax.out","w");
    if (outfile != NULL)
    {
        infile = fopen ("scmax.in","r");
        if (infile != NULL)
        {
            {
                if(fscanf(infile, "%d", &nrValues));
                i = 0;
                while(i < nrValues)
                {
                    if(fscanf(infile, "%d", &nr1));
                    if(i == finalStartIndex)
                    {
                        fprintf(outfile, "%d \n", maxDif);
                        while(i < (maxDif + finalStartIndex))
                        {
                            fprintf(outfile, "%d ", nr1);
                            i++;
                            if(fscanf(infile, "%d", &nr1));
                            if(i == (maxDif + finalStartIndex))
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        i++;
                    }

                }

            }
         fclose(infile);
        }
    fclose(outfile);
    }
   

    printf("%d\n", finalStartIndex);

    return 0;
}