Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- #include<string>
- #include<sstream>
- std::vector<int> readVec1D() {
- std::vector<int> vec1D;
- std::string line;
- getline(std::cin, line);
- std::istringstream istr(line);
- int currNumb = 0;
- while (istr >> currNumb)
- {
- vec1D.push_back(currNumb);
- }
- return vec1D;
- }
- std::vector<std::vector<int>> readVec2D() {
- int rows = 0;
- std::cin >> rows;
- std::cin.ignore();
- std::vector<std::vector<int>> vec2D(rows);
- for (auto& row : vec2D)
- {
- row = readVec1D();
- }
- return vec2D;
- }
- std::vector<std::vector<std::vector<int>>> readVec3D(int size) {
- std::vector<std::vector<std::vector<int>>> vec3D(size);
- for (auto& vec2D : vec3D)
- {
- vec2D = readVec2D();
- }
- return vec3D;
- }
- bool areEqual(const std::vector<int>& first,
- const std::vector<int>& second) {
- const size_t firstSize = first.size();
- if (firstSize != second.size())
- {
- return false;
- }
- for (size_t i = 0; i < firstSize; i++)
- {
- if (first[i] != second[i])
- {
- return false;
- }
- }
- return true;
- }
- bool areEqual(const std::vector<std::vector<int>>& first,
- const std::vector<std::vector<int>>& second) {
- const size_t firstSize = first.size();
- if (firstSize != second.size())
- {
- return false;
- }
- for (size_t i = 0; i < firstSize; i++)
- {
- const bool areVecsEqual = areEqual(first[i], second[i]);
- if (!areVecsEqual)
- {
- return false;
- }
- }
- return true;
- }
- void printSolution(const bool areMatrixesEqual) {
- std::cout << (areMatrixesEqual ? "equal" : "not equal") << std::endl;
- }
- int main() {
- const int numVectors = 2;
- const auto vec3D = readVec3D(numVectors);
- const bool areMatrixesEqual = areEqual(vec3D[0], vec3D[1]);
- printSolution(areMatrixesEqual);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment