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