Pagini recente » Rating Petre Ion (jackcelnegru) | Cod sursa (job #1170150) | Cod sursa (job #3254467) | Cod sursa (job #1001618) | Cod sursa (job #319998)
Cod sursa(job #319998)
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
// --------------------------------------
int * piter;
int * pend;
int * pmin;
int minim;
int minimpt;
int maxim;
int maximst;
long N,K;
int vec[500000];
// --------------------------------------
int main();
int _tmain(int argc, char* argv[])
{
return main();
}
// --------------------------------------
#define get_min(_min,st,en)\
piter = &vec[(st)];\
pend = &vec[(en)];\
pmin = piter++;\
while( piter <= pend )\
{\
if( *piter < *pmin )\
pmin = piter;\
piter++;\
}\
minimpt = int(pmin-vec);\
_min = *pmin;
int main()
{
ifstream in("secventa.in");
ofstream out("secventa.out");
long i,Nend;
int temp;
// --------------------------------------
in >> N >> K;
for(i = 0; i < N; i ++)
in >> vec[i];
// --------------------------------------
get_min(minim,0,K-1);
maxim = minim;
maximst = 0;
Nend = N-K+1;
for( i = 1 ; i < Nend ; i ++ )
{
if( minimpt < i )
{
get_min(minim,i,i+K-1);
if( minim > maxim )
maxim = minim,
maximst = i;
}else
{
temp = vec[i+K-1];
if( temp < minim )
{
minim = temp,
minimpt = i+K-1;
if( minim > maxim )
maxim = minim,
maximst = i;
}
}
}
out << maximst+1 << " " << (maximst + K) <<" "<< maxim;
}