Pagini recente » Cod sursa (job #2824302) | Cod sursa (job #2040977) | Cod sursa (job #2481733) | Cod sursa (job #229645) | Cod sursa (job #2833223)
#include <fstream>
#include <vector>
#include <climits>
#include <queue>
using namespace std;
ifstream cin("secventa.in");
ofstream cout("secventa.out");
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
class Info{
public:
int nr;
int poz;
};
class Compare{
public:
bool operator()(Info a,Info b){
return a.nr>b.nr;
}
};
int n,k;
vector<Info> v;
vector<int> minR;
priority_queue<Info,vector<Info>,Compare> Q;
void read(){
cin>>n>>k;
v.resize(n+1);
// minR.resize(n+1,INT_MAX);
FOR(i,1,n){
cin>>v[i].nr;
v[i].poz=i;
}
}
Info addinPQ(int startSeq,int endSeq){
while(!Q.empty())Q.pop();
FOR(i,startSeq,endSeq){
Q.push(v[i]);
}
//cout<<"sequence start : " << startSeq << " end : " << endSeq << " min : " << Q.top().nr << " poz " << Q.top().poz << "\n";
return Q.top();
}
void solve2(){
Info minElem,maxElem;
maxElem.nr = INT_MIN;
FOR(i,1,n-k+1){
minElem = addinPQ(i,i+k-1);
if(maxElem.nr < minElem.nr)
maxElem.nr = minElem.nr,maxElem.poz = minElem.poz;
}
cout<<maxElem.poz<<" "<<maxElem.poz+k-1<<" "<<maxElem.nr;
}
int main() {
read();
solve2();
return 0;
}