aimon1337

Untitled

Nov 13th, 2021 (edited)
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <sstream>
  5. #include <fstream>
  6. #include <numeric>
  7. #include <time.h>
  8. using namespace std;
  9. ofstream fout("out.out");
  10.  
  11. void readInput(vector<vector<int>>& cityDatabase, int noBlocks)
  12. {
  13.  
  14.     ifstream fin("input.in");
  15.     if (fin.good())
  16.     {
  17.         string str;
  18.         for (int i = 0; i < noBlocks; ++i)
  19.         {
  20.             while (getline(fin, str))
  21.             {
  22.                 istringstream ss(str);
  23.                 int num;
  24.                 vector<int> temp;
  25.                 while (ss >> num)
  26.                 {
  27.                     temp.push_back(num);
  28.                 }
  29.                 cityDatabase.push_back(temp);
  30.                 temp.clear();
  31.             }
  32.         }
  33.     }
  34.     fin.close();
  35. }
  36.  
  37. void printData(vector<vector<int>> cityDatabase)
  38. {
  39.     for (int i = 0; i < cityDatabase.size(); ++i) {
  40.         for (int j = 0; j < cityDatabase[i].size(); ++j)
  41.         {
  42.             fout << cityDatabase[i][j] << " ";
  43.         }
  44.         fout << endl;
  45.     }
  46.     fout << endl;
  47. }
  48.  
  49. void subpA(vector<vector<int>> cityDatabase, int noBlocks)
  50. {
  51.     for (int i = 0; i < cityDatabase.size(); ++i)
  52.     {
  53.         for (int j = 0; j < cityDatabase[i].size(); ++j)
  54.         {
  55.             if (cityDatabase[i][j] > 500)
  56.             {
  57.                 fout << i << " - " << j << " - " << cityDatabase[i][j] << "\n";
  58.             }
  59.         }
  60.     }
  61.     fout << endl;
  62. }
  63.  
  64. void subpB(vector<vector<int>>& cityDatabase)
  65. {
  66.     for (int i = 0; i < cityDatabase.size(); ++i)
  67.     {
  68.         sort(cityDatabase[i].begin(), cityDatabase[i].end(), greater<int>());
  69.     }
  70.     printData(cityDatabase);
  71. }
  72.  
  73. void subpC(vector<vector<int>> cityDatabase)
  74. {
  75.     int maximum = INT_MIN, mostPopular = -1;
  76.     for (int i = 0; i < cityDatabase.size(); ++i)
  77.     {
  78.         if (accumulate(cityDatabase[i].begin(), cityDatabase[i].end(), 0) > maximum)
  79.         {
  80.             maximum = max(maximum, accumulate(cityDatabase[i].begin(), cityDatabase[i].end(), 0));
  81.             mostPopular = i;
  82.         }
  83.     }
  84.     fout << mostPopular << " " << maximum;
  85.     fout << endl;
  86. }
  87.  
  88. void subpExtra(vector<vector<int>> cityDatabase)
  89. {
  90.     for (int i = 0; i < cityDatabase.size(); ++i)
  91.     {
  92.         auto lower = lower_bound(cityDatabase[i].begin(), cityDatabase[i].end(), 10);
  93.         if (accumulate(lower - cityDatabase[i].begin(), cityDatabase[i].end(), 0) < 100)
  94.         {
  95.             int sum = accumulate(lower - cityDatabase[i].begin(), cityDatabase[i].end(), 0);
  96.             cityDatabase[i].erase((lower - cityDatabase[i].begin()), cityDatabase[i].end());
  97.             cityDatabase[i].insert(cityDatabase[i].end(), sum);
  98.         }
  99.     }
  100.     printData(cityDatabase);
  101.     fout.close();
  102. }
  103.  
  104. int main()
  105. {
  106.     srand(time(NULL));
  107.     int noBlocks = rand() % 15;
  108.     if (noBlocks < 2) { noBlocks += 2; }
  109.     vector<vector<int>> cityDatabase;
  110.     //int noBlocks = 7;
  111.     readInput(cityDatabase, noBlocks);
  112.     subpA(cityDatabase, noBlocks);
  113.     subpB(cityDatabase);
  114.     subpC(cityDatabase);
  115.     subpExtra(cityDatabase);
  116.     return 0;
  117. }
  118.  
Add Comment
Please, Sign In to add comment