Cod sursa(job #1334785)
| Utilizator | Data | 4 februarie 2015 17:22:16 | |
|---|---|---|---|
| Problema | Secventa | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.69 kb |
#include <fstream>
using namespace std;
ifstream fin ("secventa.in" );
ofstream fout("secventa.out");
long long n, k, i, p, u, s;
int v[5000002], d[5000002];
int maxim, st, dr;
int main(){
fin >> n >> k;
p = 1; u = 1;
d[1] = 1;
for(i = 1; i <= n; i ++)
fin >> v[i];
for(i = 2; i <= n; i ++){
while(p <= u && v[i] < v[d[u]])
u --;
d[++u] = i;
if(i - d[p] == k)
p ++;
if(i >= k){
if(maxim < v[d[p]]){
maxim = v[d[p]];
st = i - k + 1;
dr = i;
}
}
}
fout << st << " " << dr << " " << maxim;
return 0;
}
