Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // Tarea5
  4. //
  5. // Created by Nina on 30/03/20.
  6. // Copyright Β© 2020 Nina. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. #include <vector>
  11. using namespace std;
  12.  
  13. struct cisternas {
  14. int ancho, largo, alto;
  15. int volumen, area;
  16. int distanciaDelPiso;
  17. int llenado;
  18.  
  19. cisternas(int w, int l, int h, int d){
  20. ancho = w;
  21. largo = l;
  22. alto = h;
  23. area = w * l;
  24. volumen = w * l * h;
  25. distanciaDelPiso = d;
  26. llenado = 0;
  27.  
  28. }
  29.  
  30. };
  31.  
  32. bool sortByDistance (const cisternas &a, const cisternas &b){
  33. return a.distanciaDelPiso < b.distanciaDelPiso;
  34. }
  35.  
  36. void sacarDistanciaDelAguaDelPiso (vector <cisternas> v, int volAlmacenar, int pivote){
  37.  
  38. if(volAlmacenar == 0){
  39. cout << pivote;
  40. } else {
  41. for(int i = 0; i < v.size()-1; i++){
  42. pivote = (v[v.size()-1].distanciaDelPiso + v[v.size()-1].alto) - v[i].distanciaDelPiso;
  43.  
  44. for(int j = 0; j < v.size()-1; j++){
  45. if ((pivote > v[j].distanciaDelPiso) && (pivote < v[j].alto)){
  46. volAlmacenar -= v[j].area;
  47. }
  48. }
  49. sacarDistanciaDelAguaDelPiso(v, volAlmacenar, pivote);
  50. }
  51. }
  52. cout << pivote;
  53. }
  54.  
  55. int main() {
  56.  
  57. int numCisternas = 0;
  58. int ancho = 0, largo = 0, alto = 0;
  59. int distanciaDelPiso = 0;
  60. int volumenParaAlmacenar = 0, capacidadVolumen = 0;
  61.  
  62. vector <cisternas> vectorCisternas;
  63.  
  64. cout << "Cuantas cisternas hay en la red? ";
  65. cin >> numCisternas;
  66.  
  67. //for para almacenar la informacion
  68. for (int i = 0; i < numCisternas; i++){
  69.  
  70. cout << "Favor de escribir las dimensiones y su distancia del piso [ancho x largo x altura] ";
  71. cin >> ancho >> largo >> alto >> distanciaDelPiso;
  72.  
  73. vectorCisternas.push_back(cisternas (ancho, largo, alto, distanciaDelPiso));
  74. }
  75.  
  76. cout << "Cuanto es el volumen que desea almacenar en la red? ";
  77. cin >> volumenParaAlmacenar;
  78.  
  79. //for para conocer el volumen posible total
  80. for (int i = 0; i < vectorCisternas.size(); i++){
  81. capacidadVolumen += vectorCisternas[i].volumen;
  82. }
  83.  
  84. if (capacidadVolumen >= volumenParaAlmacenar){
  85. sort(vectorCisternas.begin(), vectorCisternas.end(), sortByDistance);
  86. sacarDistanciaDelAguaDelPiso(vectorCisternas, volumenParaAlmacenar, vectorCisternas.size());
  87. } else {
  88. cout << "OVERFLOW ";
  89. }
  90.  
  91.  
  92. return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement