#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> adjacencyMatrix(51, vector<int>(51, 0));
vector<vector<int>> adjacencyList(51);
// Hardcoded graph
int nodes = 5;
int edges = 4;
pair<int, int> edgeList[] = {
{1, 2},
{1, 3},
{2, 4},
{4, 5}
};
// Function declarations
void inputMatrix();
void inputList();
void printMatrix();
void printList();
int main() {
// Build both representations
inputMatrix();
inputList();
// Print adjacency matrix
printMatrix();
// Print adjacency list
printList();
return 0;
}
// Build adjacency matrix from hardcoded edges
void inputMatrix() {
for(int i = 0; i < edges; i++) {
int u = edgeList[i].first;
int v = edgeList[i].second;
adjacencyMatrix[u][v] = 1;
adjacencyMatrix[v][u] = 1; // Remove this line for directed graph
}
}
// Build adjacency list from hardcoded edges
void inputList() {
for(int i = 0; i < edges; i++) {
int u = edgeList[i].first;
int v = edgeList[i].second;
adjacencyList[u].push_back(v);
adjacencyList[v].push_back(u); // Remove this line for directed graph
}
}
// Print adjacency matrix
void printMatrix() {
cout << "Adjacency Matrix:\n";
for(int i = 1; i <= nodes; i++) {
for(int j = 1; j <= nodes; j++) {
cout << adjacencyMatrix[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
// Print adjacency list
void printList() {
cout << "Adjacency List:\n";
for(int i = 1; i <= nodes; i++) {
cout << i << ": ";
for(int v : adjacencyList[i]) {
cout << v << " ";
}
cout << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8dmVjdG9yPGludD4+IGFkamFjZW5jeU1hdHJpeCg1MSwgdmVjdG9yPGludD4oNTEsIDApKTsKdmVjdG9yPHZlY3RvcjxpbnQ+PiBhZGphY2VuY3lMaXN0KDUxKTsKCi8vIEhhcmRjb2RlZCBncmFwaAppbnQgbm9kZXMgPSA1OwppbnQgZWRnZXMgPSA0OwpwYWlyPGludCwgaW50PiBlZGdlTGlzdFtdID0gewogICAgezEsIDJ9LAogICAgezEsIDN9LAogICAgezIsIDR9LAogICAgezQsIDV9Cn07CgovLyBGdW5jdGlvbiBkZWNsYXJhdGlvbnMKdm9pZCBpbnB1dE1hdHJpeCgpOwp2b2lkIGlucHV0TGlzdCgpOwp2b2lkIHByaW50TWF0cml4KCk7CnZvaWQgcHJpbnRMaXN0KCk7CgppbnQgbWFpbigpIHsKICAgIC8vIEJ1aWxkIGJvdGggcmVwcmVzZW50YXRpb25zCiAgICBpbnB1dE1hdHJpeCgpOwogICAgaW5wdXRMaXN0KCk7CgogICAgLy8gUHJpbnQgYWRqYWNlbmN5IG1hdHJpeAogICAgcHJpbnRNYXRyaXgoKTsKCiAgICAvLyBQcmludCBhZGphY2VuY3kgbGlzdAogICAgcHJpbnRMaXN0KCk7CgogICAgcmV0dXJuIDA7Cn0KCi8vIEJ1aWxkIGFkamFjZW5jeSBtYXRyaXggZnJvbSBoYXJkY29kZWQgZWRnZXMKdm9pZCBpbnB1dE1hdHJpeCgpIHsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBlZGdlczsgaSsrKSB7CiAgICAgICAgaW50IHUgPSBlZGdlTGlzdFtpXS5maXJzdDsKICAgICAgICBpbnQgdiA9IGVkZ2VMaXN0W2ldLnNlY29uZDsKICAgICAgICBhZGphY2VuY3lNYXRyaXhbdV1bdl0gPSAxOwogICAgICAgIGFkamFjZW5jeU1hdHJpeFt2XVt1XSA9IDE7IC8vIFJlbW92ZSB0aGlzIGxpbmUgZm9yIGRpcmVjdGVkIGdyYXBoCiAgICB9Cn0KCi8vIEJ1aWxkIGFkamFjZW5jeSBsaXN0IGZyb20gaGFyZGNvZGVkIGVkZ2VzCnZvaWQgaW5wdXRMaXN0KCkgewogICAgZm9yKGludCBpID0gMDsgaSA8IGVkZ2VzOyBpKyspIHsKICAgICAgICBpbnQgdSA9IGVkZ2VMaXN0W2ldLmZpcnN0OwogICAgICAgIGludCB2ID0gZWRnZUxpc3RbaV0uc2Vjb25kOwogICAgICAgIGFkamFjZW5jeUxpc3RbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGFkamFjZW5jeUxpc3Rbdl0ucHVzaF9iYWNrKHUpOyAvLyBSZW1vdmUgdGhpcyBsaW5lIGZvciBkaXJlY3RlZCBncmFwaAogICAgfQp9CgovLyBQcmludCBhZGphY2VuY3kgbWF0cml4CnZvaWQgcHJpbnRNYXRyaXgoKSB7CiAgICBjb3V0IDw8ICJBZGphY2VuY3kgTWF0cml4OlxuIjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbm9kZXM7IGkrKykgewogICAgICAgIGZvcihpbnQgaiA9IDE7IGogPD0gbm9kZXM7IGorKykgewogICAgICAgICAgICBjb3V0IDw8IGFkamFjZW5jeU1hdHJpeFtpXVtqXSA8PCAiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKfQoKLy8gUHJpbnQgYWRqYWNlbmN5IGxpc3QKdm9pZCBwcmludExpc3QoKSB7CiAgICBjb3V0IDw8ICJBZGphY2VuY3kgTGlzdDpcbiI7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG5vZGVzOyBpKyspIHsKICAgICAgICBjb3V0IDw8IGkgPDwgIjogIjsKICAgICAgICBmb3IoaW50IHYgOiBhZGphY2VuY3lMaXN0W2ldKSB7CiAgICAgICAgICAgIGNvdXQgPDwgdiA8PCAiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgIH0KfQo=