TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Skyline Divisão Conquista em Cpp

Por:   •  25/9/2021  •  Trabalho acadêmico  •  1.391 Palavras (6 Páginas)  •  53 Visualizações

Página 1 de 6

#include <iostream>

#include <bits/stdc++.h>

using namespace std;

/*void Merge(vector<int> &vetor, int comeco, int fim, int meio){

int n1 = meio - comeco + 1;

int n2 = fim - meio;

int l[n1], r[n2];

for(int i = 0; i < n1; i++)

l[i] = vetor[comeco + i];

for(int i = 0; i < n2; i++)

r[i] = vetor[meio + i + 1];

//daqui para cima separa os dois vetores

int i = 0, j = 0, k = comeco;

while(i < n1 && j < n2){

if(l[i] <= r[j]){

vetor[k] = l[i];

i++;

}

else{

vetor[k] = r[j];

j++;

}

k++;

}

//sobrou de algum lado para inserir

while(i < n1){

vetor[k] = l[i];

i++;

k++;

}

while(j < n2){

vetor[k] = r[j];

j++;

k++;

}

}

*/

vector<pair<int, int> > SkyMerge(vector<pair<int, int> > &line1, vector<pair<int, int> > &line2){

int n1 = line1.size();

int n2 = line2.size();

vector<pair<int, int> > line;

int i = 0, j = 0, h1 = -1, h2 = -1, H = -1, aux = -1; //ou begin

while(i < n1 && j < n2){

if(line1[i].first < line2[j].first){

h1 = line1[i].second;

if(h1 > h2){

line.push_back(make_pair(line1[i].first,h1));

H = h1;

aux++;

}

else{

line.push_back(make_pair(line1[i].first,h2));

H = h2;

aux++;

}

i++;

}

else{

h2 = line2[j].second;

if(h1 > h2){

line.push_back(make_pair(line2[j].first,h1));

H = h1;

aux++;

}

else{

line.push_back(make_pair(line2[j].first,h2));

H = h2;

aux++;

}

j++;

}

if(aux > 0)

if(line[aux - 1].second == H){

line.pop_back();

aux--;

...

Baixar como (para membros premium)  txt (3.6 Kb)   pdf (38.6 Kb)   docx (9.2 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com