Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // Tarea5
- //
- // Created by Nina on 30/03/20.
- // Copyright Β© 2020 Nina. All rights reserved.
- //
- #include <iostream>
- #include <vector>
- using namespace std;
- struct cisternas {
- int ancho, largo, alto;
- int volumen, area;
- int distanciaDelPiso;
- int llenado;
- cisternas(int w, int l, int h, int d){
- ancho = w;
- largo = l;
- alto = h;
- area = w * l;
- volumen = w * l * h;
- distanciaDelPiso = d;
- llenado = 0;
- }
- };
- bool sortByDistance (const cisternas &a, const cisternas &b){
- return a.distanciaDelPiso < b.distanciaDelPiso;
- }
- void sacarDistanciaDelAguaDelPiso (vector <cisternas> v, int volAlmacenar, int pivote){
- if(volAlmacenar == 0){
- cout << pivote;
- } else {
- for(int i = 0; i < v.size()-1; i++){
- pivote = (v[v.size()-1].distanciaDelPiso + v[v.size()-1].alto) - v[i].distanciaDelPiso;
- for(int j = 0; j < v.size()-1; j++){
- if ((pivote > v[j].distanciaDelPiso) && (pivote < v[j].alto)){
- volAlmacenar -= v[j].area;
- }
- }
- sacarDistanciaDelAguaDelPiso(v, volAlmacenar, pivote);
- }
- }
- cout << pivote;
- }
- int main() {
- int numCisternas = 0;
- int ancho = 0, largo = 0, alto = 0;
- int distanciaDelPiso = 0;
- int volumenParaAlmacenar = 0, capacidadVolumen = 0;
- vector <cisternas> vectorCisternas;
- cout << "Cuantas cisternas hay en la red? ";
- cin >> numCisternas;
- //for para almacenar la informacion
- for (int i = 0; i < numCisternas; i++){
- cout << "Favor de escribir las dimensiones y su distancia del piso [ancho x largo x altura] ";
- cin >> ancho >> largo >> alto >> distanciaDelPiso;
- vectorCisternas.push_back(cisternas (ancho, largo, alto, distanciaDelPiso));
- }
- cout << "Cuanto es el volumen que desea almacenar en la red? ";
- cin >> volumenParaAlmacenar;
- //for para conocer el volumen posible total
- for (int i = 0; i < vectorCisternas.size(); i++){
- capacidadVolumen += vectorCisternas[i].volumen;
- }
- if (capacidadVolumen >= volumenParaAlmacenar){
- sort(vectorCisternas.begin(), vectorCisternas.end(), sortByDistance);
- sacarDistanciaDelAguaDelPiso(vectorCisternas, volumenParaAlmacenar, vectorCisternas.size());
- } else {
- cout << "OVERFLOW ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement