Nu aveti permisiuni pentru a descarca fisierul Untitled.png
Cod sursa(job #1043523)
Utilizator | Data | 28 noiembrie 2013 18:15:57 | |
---|---|---|---|
Problema | Secventa | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.02 kb |
#include<fstream>
using namespace std;
int n, i, k, p, u, pf, uf, maxim, D[500003], v[500003], aux, semn;
char ch[3000003];
FILE*fin=fopen("secventa.in","r");
ofstream fout("secventa.out");
int main(){
fscanf(fin,"%d%d\n", &n, &k);
n=0;
semn=1;
fgets(ch, 3000003, fin);
for(i=1; ch[i]!=0; i++){
if(ch[i]>='0' && ch[i]<='9')
aux=aux*10+(ch[i]-'0');
else{
if(ch[i]=='-')
semn=-1;
else{
v[++n]=aux*semn;
aux=0;
semn=1;
}
}
}
//for(i=1; i<=n; i++)
// fout<<n<<" ";
p=1; u=0;
maxim=-999999;
for(i=1; i<=n; i++){
while(p<=u && v[i]<=v[D[u]])
u--;
D[++u]=i;
if(D[u]-D[p]==k)
p++;
if(i>=k)
if(v[D[p]]>maxim){
maxim=v[D[p]];
pf=D[u]-k+1;
uf=D[u];
}
}
fout<<pf<<" "<<uf<<" "<<maxim<<"\n";
return 0;
}