Pagini recente » Cod sursa (job #2080424) | Cod sursa (job #813733) | Cod sursa (job #482744) | Cod sursa (job #246830) | Cod sursa (job #1059649)
//#include "stdafx.h"
#include <vector>
#include <fstream>
using namespace std;
struct arbore{
int element;
arbore *stanga;
arbore *dreapta;
};
void init(arbore *radacina, int x)
{
radacina->element = x;
radacina->stanga = NULL;
radacina->dreapta = NULL;
}
void adaugare(arbore *radacina, int x)
{
arbore *adaug = new arbore;
adaug->stanga = NULL;
adaug->dreapta = NULL;
adaug->element = x;
arbore *parcurgere = new arbore;
parcurgere = radacina;
if (x < parcurgere->element)//daca e mai mic decat radacina
{
int status = 1;
while (status == 1)
{
if (x>parcurgere->element)
{
if (parcurgere->dreapta == NULL)
{
status = 0;
parcurgere->dreapta = adaug;
}
else parcurgere = parcurgere->dreapta;
}
if (x < parcurgere->element)
{
if (parcurgere->stanga == NULL)
{
status = 0;
parcurgere->stanga = adaug;
}
else parcurgere = parcurgere->stanga;
}
}
}
else//daca e mai mare decat radacina
{
int status = 1;
while (status == 1)
{
if (x>parcurgere->element)
{
if (parcurgere->dreapta == NULL)
{
status = 0;
parcurgere->dreapta = adaug;
}
else parcurgere = parcurgere->dreapta;
}
if (x < parcurgere->element)
{
if (parcurgere->stanga == NULL)
{
status = 0;
parcurgere->stanga = adaug;
}
else parcurgere = parcurgere->stanga;
}
}
}
}
int element(int i,int j,vector<int>v)
{
arbore *radacina = new arbore;
init(radacina, v.at(i));
for (int k = i + 1; k < j; k++)adaugare(radacina, v.at(k));
arbore *parcurgere = new arbore;
parcurgere = radacina;
while (parcurgere->stanga != NULL)parcurgere = parcurgere->stanga;
return parcurgere->element;
delete(radacina);
delete(parcurgere);
}
int main()
{
int n, k;
long long suma;
suma = 0;
vector<int>vec;
ifstream citire;
ofstream scriere;
citire.open("deque.in");
citire >> n >> k;
vec.resize(n);
//citire vector
for (int i = 0; i < n; i++)citire >> vec.at(i);
//inchidere citire
citire.close();
for (int i = 0; i <= n - k; i++)suma += element(i, k + i, vec);
scriere.open("deque.out");
scriere << suma;
scriere.close();
//system("PAUSE");
return 0;
}