Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <vector>
- #include <array>
- #include <climits>
- int litery(std::string ruch)
- {
- int len = ruch.length();
- int dlugosc = 0;
- int maxdlugosc = -1;
- for (int i = 0; i < len - 1; i++)
- {
- if (ruch[i] == 'E' || ruch[i] == 'W')
- dlugosc++;
- else
- {
- if (dlugosc > maxdlugosc)
- maxdlugosc = dlugosc;
- dlugosc = 0;
- }
- }
- return maxdlugosc;
- }
- int main()
- {
- std::array<std::array<int, 20>, 20> tab;
- std::ifstream plansza("plansza.txt");
- for (int i = 0; i < 20; i++)
- for (int j = 0; j < 20; j++)
- plansza >> tab[j][i];
- std::ifstream robot("robot.txt");
- std::vector<std::string> ruchy;
- std::string temp;
- for (int i = 0; i < 1000; i++)
- {
- robot >> temp;
- ruchy.emplace_back(temp);
- }
- // std::cout << ruchy[2];
- int maxwynik = INT_MIN;
- int igracza = 0;
- int dyskw = 0;
- int maxlitery = INT_MIN;
- std::vector<int> gracze;
- // std::cout << tab[1][3] << std::endl;
- for (int i = 0; i < 1000; i++)
- {
- /* Nowy gracz */
- int wynik = tab[0][0];
- int rx = 0;
- int ry = 0;
- int len = ruchy[i].length();
- for (int j = 0; j < len; j++)
- {
- char ruch = ruchy[i][j];
- switch (ruch)
- {
- case 'N':
- ry--;
- break;
- case 'S':
- ry++;
- break;
- case 'W':
- rx--;
- break;
- case 'E':
- rx++;
- break;
- }
- /* Kolizja */
- if (rx >= 20 || rx < 0 || ry >= 20 || ry < 0)
- {
- dyskw++;
- wynik = -1;
- break;
- }
- else
- wynik += tab[ry][rx];
- }
- /* Najlepszy wynik */
- if (wynik > maxwynik)
- {
- maxwynik = wynik;
- igracza = i + 1;
- }
- /* Ciag znakow */
- int litera = litery(ruchy[i]);
- if (litera > maxlitery)
- {
- maxlitery = litera;
- gracze.clear();
- }
- if (litera == maxlitery)
- gracze.emplace_back(i + 1);
- }
- // std::cout << litery("ENEEWENSSESSWSWESWNN");
- std::cout << "dyskwalifikacja: " << dyskw << std::endl;
- std::cout << "maxwynik: " << maxwynik << " - gracz: " << igracza << std::endl;
- for (auto &gracz : gracze)
- std::cout << gracz << " ";
- std::cout << "-> max: " << maxlitery << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement