Cod sursa(job #1000070)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 21 septembrie 2013 22:01:00
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <fstream>
#include <climits>
#include <cstring>

using namespace std;

const int Nmax  = 500005;
const int LgMax = 20;

int N, K;
int A[Nmax];
int maxim = -INT_MAX, stanga, dreapta;

int main()
{
    ifstream f("secventa.in");
    ofstream g("secventa.out");

    f >> N >> K;

    string file( ( istreambuf_iterator <char>(f) ), istreambuf_iterator<char>() );

    int nr = 0;
    int semn = 1;
    int index = 1;

    int ll = file.length();

    for ( int i = 1; i < ll; ++i )
    {
        if ( file[i] == '-' )
                semn = -1;
        else
            if ( isdigit( file[i] ) )
                    nr = nr * 10 + ( file[i] - 48 );
            else
            {
                nr *= semn;
                A[ index++ ] = nr;

                nr = 0;
                semn = 1;
            }
    }

    for ( int i = 1; i <= N - K + 1; ++i )
    {
        if ( A[i] > maxim )
        {
            maxim = A[i];
            stanga = i;
            dreapta = i + K - 1;
        }
    }

    g << stanga << " " << dreapta << " " << maxim << "\n";

    return 0;
}