Cod sursa(job #670367)

Utilizator ion824Ion Ureche ion824 Data 28 ianuarie 2012 21:51:27
Problema Secventa Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.58 kb
#include<fstream>
#define nmax 500005
using namespace std;
int a[nmax],m[nmax],p[nmax];
int main(void){
    ifstream fin("secventa.in");
    ofstream fout("secventa.out");
    int i,n,k,min=30005,poz,sf,m2=30005,p2,bmax=-30005;
    fin>>n>>k; k--;
    for(i=1;i<=n;++i){ 
                       fin>>a[i]; 
                       if(min>a[i]){ 
                                     min=a[i];
                                     poz=i;
                                     }
                             else
                               if(m2>a[i]){
                                           m2=a[i];
                                           p2=i;
                                           }       
                       if(i-k<=poz){ 
                                    m[i]=min;
                                    p[i]=poz;
                                    if(m[i]>bmax && i-k>0){ bmax=m[i]; sf=i; }
                                  }
                        else {                                                           
                             m[i]=m2;
                             p[i]=p2;
                             if(m[i]>bmax && i-k>0){ bmax=m2; sf=i; }
                             min=m2;
                             poz=p2;
                             m2=a[i];
                             p2=i;
                             }                                                                                                             
                       }         
    fout<<sf-k<<' '<<sf<<' '<<bmax;                  
 return 0;   
}