Pagini recente » Cod sursa (job #1958442) | Cod sursa (job #2101353) | Cod sursa (job #1392188) | Cod sursa (job #863633) | Cod sursa (job #1328983)
#include<fstream>
#include<deque>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
#define Nmax 500005
int Maxx=-30005,K, N,A[Nmax],fr, bk;
deque <int> D;
char s[5000005];
void chg()
{
int semn, j, r;
j = 1;
for (int i = 0; s[i] != 0; i++)
{
semn = 1;
r = 0;
if (s[i] == '-')
{
semn = -1;
i++;
}
while (s[i] >= '0' && s[i] <= '9')
{
r = r * 10 + s[i] - '0';
i++;
}
A[j] = r * semn;
j++;
}
}
int main ()
{
in>>N>>K;
in.get();
in.getline(s,5000100);
chg();
for(int i=1; i<=N; i++)
{
if( !D.empty() && A[i] <= A[ D.back() ])
D.pop_back();
D.push_back(i);
if(D.front() == i-K)
D.pop_front();
if( i>=K && A[ D.front() ] > Maxx)
{
Maxx=A[D.front()];
fr=i-K+1;
bk=i;
}
}
out<<fr<<' '<<bk<<' '<<Maxx;
return 0;
}