Jeremiah_

1023 URI

Oct 21st, 2018
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stack>
  4. #include <list>
  5. #include <vector>
  6. #include <cmath>
  7. #include <algorithm>
  8. #include <iostream>
  9. #include <iomanip>
  10. #include <string>
  11.  
  12. #define INF 1999999999
  13. #define TAM 1000099
  14. #define N int i=0; i<n; i++
  15. #define M int j=0; j<m-1; j++
  16.  
  17. using namespace std;
  18.  
  19. int consum[TAM] = {0};
  20.  
  21. struct casa{
  22.     int pessoas;
  23.     int consumo;
  24. };
  25.  
  26. int how(casa a, casa b){
  27.     return a.consumo < b.consumo;
  28. }
  29.  
  30. struct cidade{
  31.     vector<casa> c;
  32.     double conMed;
  33. };
  34.  
  35. int main(){
  36.     int casNum=1, n, conMax=0;
  37.     double x, y, numPessTot=0, consTot=0;
  38.     casa house;
  39.     vector<casa> casas;
  40.     vector<cidade> cidades;
  41.     cidade city;
  42.     vector<casa>::iterator it;
  43.     vector<cidade>::iterator vit;
  44.     cin >> n;
  45.     while(n){
  46.         for(N){
  47.             cin >> x >> y;
  48.             if(y>conMax){
  49.                 conMax = y;
  50.             }
  51.             house.pessoas = x;
  52.             house.consumo = floor(y/x);
  53.             casas.push_back(house);
  54.             numPessTot += x;
  55.             consTot += y;
  56.         }
  57.  
  58.         for(it = casas.begin(); it!=casas.end();it++){
  59.             consum[it->consumo] += it->pessoas;
  60.         }
  61.         casas.clear();
  62.         for(int i=0; i<=conMax; i++){
  63.             if(consum[i]!=0){
  64.                 house.consumo = i;
  65.                 house.pessoas = consum[i];
  66.                 casas.push_back(house);
  67.             }
  68.         }
  69.         double conMed = consTot/numPessTot;
  70.  
  71.         conMed *= 100;
  72.         conMed = floor(conMed);
  73.         conMed /= 100;
  74.  
  75.         city.c = casas;
  76.         city.conMed = conMed;
  77.  
  78.         cidades.push_back(city);
  79.  
  80.         consTot = 0;
  81.         numPessTot = 0;
  82.         casNum++;
  83.         casas.clear();
  84.         cin >> n;
  85.     }
  86.     cout << fixed;
  87.     cout.precision(2);
  88.     int i =1;
  89.     for(vit = cidades.begin(); vit!=cidades.end()-1; vit++){
  90.         cout << "Cidade# " << i << ":\n";
  91.         for(it=vit->c.begin(); it!=vit->c.end()-1; it++){
  92.             cout << it->pessoas << "-" << it->consumo << " ";
  93.         }
  94.         cout << it->pessoas << "-" << it->consumo << endl;
  95.  
  96.         printf("Consumo medio: %.2lf m3.\n\n", vit->conMed);
  97.         //cout << "Consumo medio: " << vit->conMed << " m3.\n\n";
  98.         i++;
  99.     }
  100.     cout << "Cidade# " << i << ":\n";
  101.     for(it=vit->c.begin(); it!=vit->c.end()-1; it++){
  102.         cout << it->pessoas << "-" << it->consumo << " ";
  103.     }
  104.     cout << it->pessoas << "-" << it->consumo << endl;
  105.  
  106.     printf("Consumo medio: %.2lf m3.", vit->conMed);
  107.     //cout << "Consumo medio: " << vit->conMed << " m3.";
  108.     return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment