Cod sursa(job #1683898)

Utilizator andreiudilaUdila Andrei andreiudila Data 10 aprilie 2016 17:16:10
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");

int i,j,k,posmin,inceput,sfarsit,n,maxi,mini,idx;
int a[500001];
string s;

int numar()
{
    int i=0;
    int numar=0;
    int semn=0;

    while(s[idx]==32)
    {
        ++idx;
    }



        if(s[idx]=='-') semn=-1,++idx;
        else semn=1;

    while(s[idx]>='0' && s[idx]<='9')
    {


        numar=numar*10+s[idx]-'0';

        ++idx;
    }

    return numar*semn;




}


int main()
{

  fin>>n>>k;

  fin.get();

  getline(fin,s);

  for(i=1;i<=n;++i)
    {
        a[i]=numar();
    }


    mini=a[1];

    for(i=2;i<=k;++i)
        if(a[i]<=mini)
        {
            mini=a[i];
            posmin=i;
        }

    maxi=mini; inceput=1; sfarsit=k;

    for(i=2; i<=n-k+1;++i)
    {

    if(i>posmin)
    {
        mini=a[i];
        posmin=i;
        for(j=i+1; j<=i+k-1;j++)
            if(a[j]<mini)
            {
                mini=a[j];
                posmin=j;
            }
    }

    if(mini>maxi)
    {
        inceput=i;
        sfarsit=i+k-1;
        maxi=mini;
    }

    }

    fout<<inceput<<" "<<sfarsit<<" "<<maxi;
    return 0;
}