Cod sursa(job #1489055)

Utilizator eusebiu_gageaGagea Eusebiu-Andrei eusebiu_gagea Data 20 septembrie 2015 15:26:41
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>
using namespace std;
FILE*fin=fopen("secventa.in","r");
FILE*fout=fopen("secventa.out","w");
int v[500000];
int minim(int i, int j)
{
    int poz=i;
    for(int k=i+1; k<=j; k++)
		if(v[k]<v[poz])
            poz=k;
    return poz;
}
int main()
{
    int n,k,i,start,poz,secv,lg,ok;
    fscanf(fin,"%d %d",&n,&k);
    for(int i=1; i<=n; i++)
        fscanf(fin,"%d",&v[i]);
    poz=minim(1,k);
	secv=start=1; lg=k;
	for(i=k+1; i<=n; i++)
    {
        ok=0;
        if(v[i]>v[poz])
            ok=1;
        if(ok==1)
        {
            if(i-poz==k)
                poz=minim(poz+1,poz+k);
            if(lg==k)
            {
                start++;
                secv=start;
            }
            else
                lg++;
        }
        else
        {
            start=i;
            if(v[i]<=v[poz])
                lg=0;
            else
                lg++;
        }
    }
    if(lg==k)
    {
        start++;
        secv=start;
    }
    fprintf(fout,"%d %d %d\n",secv,secv+k-1,v[poz]);
	return 0;
}