Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // OSTATECZNA WERSJA ZUZKOWA
- #include <iostream>
- using namespace std;
- int iloscWierzcholkow; // wymiar adjacency matrix
- char krotka;
- // uzupelnianie adjacency matrix; zliczenie jedynek; znalezienie wiersza z najwieksza ich iloscia (maxStopnia)
- void wypelnijMacierz(int** adj, int &jedynki, int &maxStopien) {
- for (int y = 0; y < iloscWierzcholkow; y++) {
- int stopien = 0;
- for (int x = 0; x < iloscWierzcholkow; x++) {
- cin >> krotka;
- if (y == x || krotka == '0') {
- adj[y][x] = 0;
- }
- if (krotka == '1') {
- adj[y][x] = 1;
- jedynki++;
- stopien++;
- }
- }
- // jesli stopien w obecnym wierszu jest wiekszy niz w poprzednich, to jest max
- if (stopien > maxStopien) {
- maxStopien = stopien;
- }
- }
- }
- int main() {
- int N; // liczba disgracow
- cin >> N;
- for (int i = 0; i < N; i++) {
- int r; // liczba grafow
- int iloscKrotek; // wielkosc zbioru B
- int jedynki = 0;
- int M; // ilosc krawedzi
- int maxStopien = -1;
- int sredniStopien;
- cin >> r;
- cin >> iloscWierzcholkow;
- int** adj = new int*[iloscWierzcholkow];
- for (int j = 0; j < iloscWierzcholkow; j++) {
- adj[j] = new int[iloscWierzcholkow];
- }
- // krotki - nieistotne dla r==1
- cin >> iloscKrotek;
- for (int j = 0; j < iloscKrotek; ++j) {
- cin >> krotka;
- }
- wypelnijMacierz(adj, jedynki, maxStopien);
- M = jedynki / 2;
- sredniStopien = jedynki / iloscWierzcholkow;
- // OUTPUT:
- cout << M << " " << maxStopien << " " << sredniStopien << endl;
- for (int j = 0; j < iloscWierzcholkow; j++) {
- delete[] adj[j];
- }
- delete[] adj;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement