Загрузка данных


#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>

int main() {
    std::ifstream in("symbole.txt");
    if (!in) {
        std::cerr << "Nie można otworzyć pliku symbole.txt\n";
        return 1;
    }

    long long suma = 0;
    long long maks = -1;
    std::string maks_str;
    std::string line;

    while (std::getline(in, line)) {
        if (!line.empty() && line.back() == '\r') line.pop_back();
        if (line.empty()) continue;

        long long val = 0;
        for (char c : line) {
            int d = 0;
            if (c == 'o') d = 0;
            else if (c == '+') d = 1;
            else if (c == '*') d = 2;
            else continue;
            val = val * 3 + d;
        }

        suma += val;
        if (val > maks) {
            maks = val;
            maks_str = line;
        }
    }

    in.close();

    // zamiana sumy na zapis trójkowy używając symboli o,+,*
    long long temp = suma;
    std::string tern = "";
    if (temp == 0) {
        tern = "o";
    } else {
        while (temp > 0) {
            int d = temp % 3;
            char c = (d == 0 ? 'o' : (d == 1 ? '+' : '*'));
            tern.push_back(c);
            temp /= 3;
        }
        std::reverse(tern.begin(), tern.end());
    }

    std::ofstream out("wyniki2.txt");
    if (!out) {
        std::cerr << "Nie można utworzyć pliku wyniki2.txt\n";
        return 1;
    }

    out << "2.3 " << maks << " " << maks_str << "\n";
    out << "2.4 " << suma << " " << tern << "\n";
    out.close();

    std::cout << "Zapisano wyniki do wyniki2.txt\n";
    std::cout << "2.3 " << maks << " " << maks_str << "\n";
    std::cout << "2.4 " << suma << " " << tern << "\n";

    return 0;
}