Cod sursa(job #1873282)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 8 februarie 2017 21:44:00
Problema Secventa Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <iostream>
#include <fstream>
#define dim  500001
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k,a[dim],mini,pozi,pozj,c=1;
void minim(int i,int j,int &mini,int &pozi,int &pozj,int &c)
{
    int miniaux,pozauxi,pozauxj;
    if(mini!=0&&pozi!=0&&pozj!=0)
    {miniaux=mini;
     pozauxi=pozi;
     pozauxj=pozj;}
     pozi=i;
     pozj=j;
    mini=a[i];
    for(int k=i+1;k<=j;k++)
        if(mini>=a[k])
        mini=a[k];
        if(i!=1)
        if(miniaux==mini&&c==1)
        {
            if(pozj>pozauxj)
            {pozj=pozauxj;
             pozi=pozauxi;}
             c++;
        }
        else if(miniaux==mini&&c>1)
        {
            if(pozi>pozauxi)
            {
                pozi=pozauxi;
                pozj=pozauxj;
            }
            c++;
        }
        else if(miniaux>mini)
        {
            mini=miniaux;
            pozi=pozauxi;
            pozj=pozauxj;
            c=1;
        }

}
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>a[i];
        for(int i=1;i<=n-k+1;i++)
        minim(i,i+k-1,mini,pozi,pozj,c);
        fout<<pozi<<"  "<<pozj<<"  "<<mini;

    return 0;
}