Advertisement
Guest User

C++

a guest
Jun 14th, 2015
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.87 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. const char FD[] = "U2.txt";
  10. const char FR[] = "U2rez.txt";
  11. int sk;
  12. int apsk_sk = 0;
  13. string apsk[30];
  14. vector<string> cities;
  15.  
  16. struct Apskritis {
  17.     string pav;
  18.     int gyv_sk;
  19. };
  20. struct Miestai {
  21.     string pav;
  22.     string apskritis;
  23.     int gyv_sk;
  24. };
  25.  
  26. void Skaitymas(Miestai M[]) {
  27.     ifstream fd(FD);
  28.     fd>>sk;
  29.     for (int i = 0; i < sk; i++) {
  30.         fd>>M[i].pav>>M[i].apskritis>>M[i].gyv_sk;
  31.     }
  32.  
  33.     fd.close();
  34. }
  35. bool checkExist(Apskritis A[], string s) {
  36.     for (int i = 0; i < sk; i++) {
  37.         if (A[i].pav == s) {
  38.             return true;
  39.         }
  40.     }
  41.     return false;
  42. }
  43. void SkaiciuotiApsk(Miestai M[], Apskritis A[]) {
  44.     for (int i = 0; i < sk; i++) {
  45.         if (!checkExist(A, M[i].apskritis)) {
  46.             A[i].pav = M[i].apskritis;
  47.             A[i].gyv_sk = 0;
  48.             apsk_sk++;
  49.             cities.push_back(M[i].apskritis);
  50.         }
  51.     }
  52.     sort(cities.begin(), cities.end());
  53. }
  54. void SkaiciuotiApskGyventojus(Miestai M[], Apskritis A[]) {
  55.     for (int i = 0; i < apsk_sk; i++) {
  56.         for (int j = 0; j < sk; j++) {
  57.             if (M[j].apskritis == A[i].pav) {
  58.                 A[i].gyv_sk+=M[j].gyv_sk;
  59.             }
  60.         }
  61.     }
  62. }
  63. void MaziausiasMiestas(Miestai M[], Apskritis A[]) {
  64.     for (int i = 0; i < sk; i++) {
  65.  
  66.     }
  67. }
  68. void Rusiuoti(Miestai M[], Apskritis A[]) {
  69.     int temp;
  70.     string temps;
  71.     for (int i = 0; i < apsk_sk; i++) {
  72.         for (int j = 0; j < apsk_sk - 1; j++) {
  73.             if (A[j].gyv_sk > A[j+1].gyv_sk) {
  74.                 temp = A[j].gyv_sk;
  75.                 temps = A[j].pav;
  76.                 A[j].gyv_sk = A[j+1].gyv_sk;
  77.                 A[j].pav = A[j+1].pav;
  78.                 A[j+1].gyv_sk = temp;
  79.                 A[j+1].pav = temps;
  80.             } else if (A[j].gyv_sk == A[j+1].gyv_sk) {
  81.  
  82.             }
  83.         }
  84.     }
  85.     for (int i = 0; i < apsk_sk; i++) {
  86.         cout <<"Skaicius: "<<A[i].pav<<endl;
  87.     }
  88. }
  89. void abecele(Apskritis A[], int n)
  90. {
  91.    bool swapped = true;
  92.    int j = 0;
  93.    string tmp;
  94.    int a;
  95.    while (swapped)
  96.    {
  97.       swapped = false;
  98.       j++;
  99.       for (int i = 0; i < n - j; i++)
  100.       {
  101.          if ( A[i].pav.compare(A[i + 1].pav) )
  102.          {
  103.  
  104.             tmp = A[i].pav;
  105.             a = A[i].gyv_sk;
  106.             A[i].pav = A[i + 1].pav;
  107.             A[i].gyv_sk = A[i+1].gyv_sk;
  108.             A[i + 1].pav = tmp;
  109.             A[i + 1].gyv_sk = a;
  110.             swapped = true;
  111.          }
  112.       }
  113.    }
  114.    for (int i = 0; i < apsk_sk; i++) {
  115.       cout<<"Miestas: "<<A[i].pav<<endl;
  116.    }
  117. }
  118. int main()
  119. {
  120.     Apskritis A[1000];
  121.     Miestai M[1000];
  122.     Skaitymas(M);
  123.     SkaiciuotiApsk(M,A);
  124.     SkaiciuotiApskGyventojus(M, A);
  125.     Rusiuoti(M,A);
  126.     abecele(A, apsk_sk);
  127.     return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement