Cod sursa(job #1995280)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 27 iunie 2017 15:14:13
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 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,pozi,pozj,c=1,y;
struct minn
{
    int x,poz;
}minim[dim];
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>a[i];
        minimax=-30001;
        y=1;
       for(int i=2;i<=n;i++)
       {
           if(a[i]<minim[y].x)
           {

               while(a[i]<minim[y].x&&y!=0)
               {
                   y--;
               }
               y++;
               minim[y].x=a[i];
               minim[y].poz=i;
           }
           else
           {
                y++;
               minim[y].x=a[i];
               minim[y].poz=i;
           }
           if(minim[y].poz-minim[1].poz==3)
           {
               for(int j=2;j<=y;j++)
                minim[j-1]=minim[j];
                y--;
           }
           if(i>=3)
           {
               if(minimax<minim[1].x)
               {
                   minimax=minim[1].x;
                   pozi=minim[1].poz;
                   if(minim[y].poz-minim[1].poz==2)
                       pozj=minim[y].poz;
                       else
                        if(minim[y].poz-minim[1].poz==1)
                        pozj=minim[1].poz-1;
                       else
                        pozj=minim[1].poz-2;
               }
           }

       }
       fout<<pozi<<"  "<<pozj<<"  "<<minimax;

    return 0;
}