Pagini recente » Cod sursa (job #82900) | Cod sursa (job #1943472) | Cod sursa (job #2608055) | Cod sursa (job #967219) | Cod sursa (job #1208218)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
struct P{int x,y;};
deque<P> D;
vector<int> v;
string s;
int main(){
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,k,I,J;
int Val=-30001;
f >> n >> k;
f.get();
getline(f,s);
///////////////////////////citire
int x=0;
int semn=1;
for(int i=0;i<int(s.size());i++){
if(s[i]==' '){
v.push_back(x*semn);
semn=1;
x=0;
}
else{
if(s[i]=='-'){
semn=-1;
}
else if(s[i]>='0' && s[i]<='9') x=x*10+(s[i]-'0');
}
}
///////////////////////////citire
for(int i=0;i<n;i++){
while(!D.empty() && v[i]<D.back().x) D.pop_back();
P a;
a.x=v[i];
a.y=i+1;
D.push_back(a);
if(i-D.front().y+2>k) D.pop_front();
if(i+1>=k && D.front().x>Val){
Val=D.front().x;
J=i+1;
I=i-k+2;
}
}
g << I << " " << J << " " << Val << "\n";
}