Pagini recente » Cod sursa (job #2054424) | Cod sursa (job #2330398) | Rating Ignatescu Darius (dar00s) | Cod sursa (job #2028296) | Cod sursa (job #1735244)
#include<fstream>
#include<deque>
#define INF 2000000000
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n, k, v[500005], maxim, st, dr;
deque<int> d;
int main(){
fin >> n >> k;
for( int i = 1; i <= n; i++ ){
fin >> v[i];
}
d.push_back(1);
maxim = -INF;
for( int i = 2; i <= n; i++ ){
while( !d.empty() && v[d.back()] > v[i] ){
d.pop_back();
}
d.push_back(i);
if( i - d.front() == k ){
d.pop_front();
}
if( i >= k ){
if( maxim < v[d.front()] ){
maxim = v[d.front()];
st = d.front();
dr = st + k - 1;
}
}
}
fout << st << " " << dr << " " << maxim;
return 0;
}