Cod sursa(job #2027667)

Utilizator codrin18Diac Eugen Codrin codrin18 Data 26 septembrie 2017 15:21:26
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb

///    Se cere o secventa de lungime >= K (dat) de baza maxima.

#include <iostream>
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
void TipS(int* x,int n, int p, int q)
{
     for (int i=p; i<=q; i++) g<< x[i] << ' ';
}
int  Baza(int* x, int p, int q)
{
     int Min=x[p];
     for (int i=p+1; i<=q; i++) Min=min(x[i],Min);
     return Min;
}

void Smm (int* x, int n, int k, int& St, int& Dr)
{
        int Bm=Baza(x,1,k), b; St=1; Dr=k;
     for (int p=2; p<=n-k+1; p++)
          if ((b=Baza(x,p,p+k-1))>Bm) Bm=b, St=p, Dr=p+k-1;      // cout << endl<< b << ':'<<p<<','<<p+k-1<<" -> "<< Baza(x,p,p+k-1); }
     ///while (Dr<n and x[Dr+1]>Bm) Dr++;
}

int main()
{
    int  X[500000] ,n,k,St,Dr;    //   8,  -1, 2, 3, 1, 0, 4, 8, 6  /// 1,5,1, 9,8,3,5,  1
    f>>n>>k;
    for (int i=1;i<=n;i++)
    {
        f>>X[i];
    }
    Smm(X,n,k,St,Dr);  TipS(X,n,St,Dr);
}