Pagini recente » Cod sursa (job #712658) | Cod sursa (job #2440846) | Cod sursa (job #2526843) | Cod sursa (job #943330) | Cod sursa (job #521290)
Cod sursa(job #521290)
#include<iostream>
using namespace std;
typedef struct _nod
{
int minim;
int poza;
int pozb;
int viz;
struct _nod *adr;
} nod;
nod *cap = (nod*)malloc(sizeof(nod));
nod *coada;
nod *A;
int poz = 0;
int mar;
long int k;
long int n;
void citire(void)
{
FILE *f = fopen("secventa.in","r");
fscanf(f,"%ld %ld",&n,&k);
fscanf(f,"%d",&cap->minim);
cap->poza = 1;
cap->pozb = 1;
cap->adr = NULL;
cap->viz = 1;
A = cap;
coada = cap;
poz ++;
for(int i=2;i<=n;i++)
{
nod *nou = (nod*)malloc(sizeof(nod));
fscanf(f,"%d",&nou->minim);
nou->poza = i;
nou->pozb = i;
nou->viz = 1;
nou->adr = NULL;
coada->adr = nou;
coada = nou;
nod *p = A;
while(p)
{
p->minim = p->minim > nou->minim ? nou->minim : p->minim;
if(++(p->viz) == k)
{
p->pozb = p->poza + p->viz-1;
A = A->adr;
mar < p->minim ? mar = p->minim : 0;
}
p = p->adr;
}
}
fclose(f);
}
void detmin(void)
{
nod *p = cap;
while(p)
{
if(p->minim == mar) {
FILE *f = fopen("secventa.out","w");
fprintf(f,"%d %d %d",p->poza,p->pozb,p->minim);
fclose(f);
break;
}
p = p->adr;
}
}
int main()
{
citire();
detmin();
return 0;
}