Mai intai trebuie sa te autentifici.
Cod sursa(job #1209684)
Utilizator | Data | 18 iulie 2014 12:32:52 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 2.74 kb |
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
using namespace std;//trebuie sa-l scot
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);
getch();
return 0;
}