Cod sursa(job #2398728)
| Utilizator | Data | 5 aprilie 2019 23:28:32 | |
|---|---|---|---|
| Problema | Secventa | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <fstream>
#define NMAX 500000
using namespace std;
int dqmin[NMAX + 1];
int v[NMAX + 1];
int main() {
ifstream cin("secventa.in");
ofstream cout("secventa.out");
int n, k, i, st, dr, last;
cin>>n>>k;
st = 0;
dr = -1;
int ans = -30001;
for( i = 1; i <= n; i ++ ) {
cin>>v[i];
if( st >= 0 && dqmin[st] == i - k )
st ++;
while( dr >= st && v[dqmin[dr]] > v[i] )
dr --;
dqmin[++dr] = i;
if( ans < v[dqmin[st]] )
ans = v[dqmin[st]], last = i;
}
cout<<last-k+1<<" "<<last<<" "<<ans;
return 0;
}
