Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. // OSTATECZNA WERSJA ZUZKOWA
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int iloscWierzcholkow; // wymiar adjacency matrix
  6. char krotka;
  7.  
  8. // uzupelnianie adjacency matrix; zliczenie jedynek; znalezienie wiersza z najwieksza ich iloscia (maxStopnia)
  9. void wypelnijMacierz(int** adj, int &jedynki, int &maxStopien) {
  10.     for (int y = 0; y < iloscWierzcholkow; y++) {
  11.         int stopien = 0;
  12.  
  13.         for (int x = 0; x < iloscWierzcholkow; x++) {
  14.             cin >> krotka;
  15.  
  16.             if (y == x || krotka == '0') {
  17.                 adj[y][x] = 0;
  18.             }
  19.             if (krotka == '1') {
  20.                 adj[y][x] = 1;
  21.                 jedynki++;
  22.                 stopien++;
  23.             }
  24.         }
  25.         // jesli stopien w obecnym wierszu jest wiekszy niz w poprzednich, to jest max
  26.         if (stopien > maxStopien) {
  27.             maxStopien = stopien;
  28.         }
  29.     }
  30. }
  31.  
  32. int main() {
  33.     int N; // liczba disgracow
  34.  
  35.     cin >> N;
  36.  
  37.     for (int i = 0; i < N; i++) {
  38.         int r; // liczba grafow
  39.         int iloscKrotek; // wielkosc zbioru B
  40.         int jedynki = 0;
  41.         int M; // ilosc krawedzi
  42.         int maxStopien = -1;
  43.         int sredniStopien;
  44.  
  45.         cin >> r;
  46.         cin >> iloscWierzcholkow;
  47.  
  48.         int** adj = new int*[iloscWierzcholkow];
  49.         for (int j = 0; j < iloscWierzcholkow; j++) {
  50.             adj[j] = new int[iloscWierzcholkow];
  51.         }
  52.  
  53.         // krotki - nieistotne dla r==1
  54.         cin >> iloscKrotek;
  55.         for (int j = 0; j < iloscKrotek; ++j) {
  56.             cin >> krotka;
  57.         }
  58.  
  59.         wypelnijMacierz(adj, jedynki, maxStopien);
  60.  
  61.         M = jedynki / 2;
  62.         sredniStopien = jedynki / iloscWierzcholkow;
  63.  
  64.         // OUTPUT:
  65.         cout << M << " " << maxStopien << " " << sredniStopien << endl;
  66.  
  67.         for (int j = 0; j < iloscWierzcholkow; j++) {
  68.             delete[] adj[j];
  69.         }
  70.         delete[] adj;
  71.     }
  72.  
  73.     system("pause");
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement