Pagini recente » Cod sursa (job #3188194) | Cod sursa (job #2771973) | Cod sursa (job #3279015) | Cod sursa (job #964903) | Cod sursa (job #2205114)
#include <iostream>
#include <fstream>
#define m 5000010
int n,k,v[m],d[m],maxim=-m,pm,ver,oriz,in=1,semn,t;
char cifre[31000][6];
long long sum;
using namespace std;
int main() {
ifstream fin("secventa.in");
ofstream fout("secventa.out");
fin>>n>>k;
while(fin>>noskipws>>cifre[ver][oriz++]){
if(cifre[ver][oriz-1]==' ' || (+cifre[ver][oriz-1])==10){
ver++;
oriz=0;
}
//cout<<cifre[ver][oriz];
}
for(int i=1;i<ver;i++){
if(cifre[i][0]=='-'){
semn=-1;
t=1;
}
else{
t=0;
semn=1;
}
for(;;t++){
if(+cifre[i][t]==10)
break;
if(cifre[i][t]!=' ')
v[in]=v[in]*10+(cifre[i][t]-'0');
else
break;
}
v[in]*=semn;
in++;
}
int cap=1,coada=0;
for(int i=1;i<=n;i++){
cout<<v[i]<<" ";
while(cap<=coada && v[i]<v[d[coada]])
coada--;
d[++coada]=i;
if(d[cap]==i-k)
cap++;
if(i>=k)
if(maxim<v[d[cap]]){
maxim=v[d[cap]];
pm=i;
}
}
fout<<pm-k+1<<" "<<pm<<" "<<maxim;
return 0;
}