Cod sursa(job #2005082)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 26 iulie 2017 14:30:24
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#define dim  500001
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k,a[dim],minimax=-30001,pozi,pozj,c=1,y,dp[dim];
int main()
{
    fin>>n>>k;
        int st,fi;
        st=1;
        fi=0;
        st=1;
        fi=0;
       for(int i=1;i<=n;i++)
       {
             fin>>a[i];
              while(a[i]<a[dp[fi]]&&st<=fi)
                    fi--;
              fi++;
              dp[fi]=i;
              if(i-dp[st]==k)
                st++;
              if(i>=k)
              {
                  if(minimax<a[dp[st]])
                  {
                     pozi=i-k+1;
                     minimax=a[dp[st]];
                  }
              }
       }
       fout<<pozi<<"  "<<pozi+k-1<<"  "<<minimax;

    return 0;
}