Pagini recente » Cod sursa (job #2279859) | Cod sursa (job #407759) | Cod sursa (job #3151388) | Cod sursa (job #118352) | Cod sursa (job #2908939)
/*
Maximum Increasing Subarray Problem
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define _CRT_SECURE_NO_WARNINGS
void maxIncrSubArr(int* arr, int* dp, int n)
{
FILE* g;
g = fopen("scmax.out", "wt");
int i, maxSum, maxIdx = 0, bgn = 0;
dp[0] = 1;
maxSum = dp[0];
for (i = 1; i < n; i++)
{
if (arr[i] >= arr[i - 1])
{
dp[i] = dp[i - 1] + 1;
if (maxSum < dp[i])
{
maxSum = dp[i];
maxIdx = i;
}
}
else
dp[i] = 1;
}
bgn = maxIdx;
while (dp[bgn] > dp[bgn - 1])
{
bgn--;
}
fprintf(g,"%d\n", maxSum-1);
//for (i = bgn; i <= maxIdx; i++)
// fprintf(g,"%d ", arr[i]);
}
int main()
{
int n,i;
int *arr,*dp;
FILE* f;
f = fopen("scmax.in", "rt");
fscanf(f,"%d",&n);
arr = (int*) calloc(n,sizeof(int));
for (i = 0; i < n; i++)
{
fscanf(f,"%d", arr + i);
}
dp = (int*) calloc(n,sizeof(int));
maxIncrSubArr(arr, dp, n);
return 0;
}