Advertisement
AdrianMadajewski

Untitled

Jan 8th, 2019
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. #include <Windows.h>
  5. #include <vector>
  6.  
  7. void wypisz(int tab[][20])
  8. {
  9.     for (int i = 0; i < 20; i++)
  10.     {
  11.         for (int j = 0; j < 20; j++)
  12.             std::cout << tab[j][i];
  13.         std::cout << std::endl;
  14.     }
  15. }
  16.  
  17. int litery(std::string ruch)
  18. {
  19.     int len = ruch.length();
  20.     int dlugosc = 1;
  21.     int maxdlugosc = -1;
  22.  
  23.     for (int i = 0; i < len - 1; i++)
  24.     {
  25.         if (ruch[i] == 'E' || ruch[i] == 'W')
  26.             if (ruch[i] == ruch[i + 1])
  27.                 dlugosc++;
  28.             else
  29.             {
  30.                 if (dlugosc > maxdlugosc)
  31.                     maxdlugosc = dlugosc;
  32.                 dlugosc = 1;
  33.             }
  34.     }
  35.     return maxdlugosc;
  36. }
  37.  
  38. int main()
  39. {
  40.     int tab[20][20];
  41.     std::ifstream plansza("plansza.txt");
  42.  
  43.     for (int i = 0; i < 20; i++)
  44.         for (int j = 0; j < 20; j++)
  45.             plansza >> tab[j][i];
  46.  
  47.     // Sprawdzenie
  48.     // wypisz(tab);
  49.  
  50.     std::ifstream robot("robot.txt");
  51.     std::string ruchy[1000];
  52.  
  53.     for (int i = 0; i < 1000; i++)
  54.         robot >> ruchy[i];
  55.  
  56.     // std::cout << ruchy[2];
  57.     int maxwynik = -1;
  58.     int igracza = 0;
  59.     int dyskw = 0;
  60.  
  61.     int maxlitery = -1;
  62.     std::vector<int> gracze;
  63.  
  64.     for (int i = 0; i < 1000; i++)
  65.     {
  66.         int wynik = tab[0][0];
  67.         int x = 0;
  68.         int y = 0;
  69.  
  70.         int len = ruchy[i].length();
  71.  
  72.         for (int j = 0; j < len; j++)
  73.         {
  74.             char ruch = ruchy[i][j];
  75.  
  76.             switch (ruch)
  77.             {
  78.             case 'N':
  79.                 y--;
  80.                 break;
  81.             case 'S':
  82.                 y++;
  83.                 break;
  84.             case 'W':
  85.                 x--;
  86.                 break;
  87.             case 'E':
  88.                 x++;
  89.                 break;
  90.             }
  91.  
  92.             if (x >= 20 || x < 0 || y >= 20 || y < 0)
  93.             {
  94.                 dyskw++;
  95.                 wynik = -1;
  96.                 break;
  97.             }
  98.             else
  99.                 wynik += tab[y][x];
  100.                
  101.         }
  102.  
  103.         if (wynik > maxwynik)
  104.         {
  105.             maxwynik = wynik;
  106.             igracza = i + 1;
  107.         }
  108.  
  109.         int litera = litery(ruchy[i]);
  110.  
  111.         if (litera > maxlitery)
  112.         {
  113.             maxlitery = litera;
  114.             gracze.clear();
  115.             gracze.emplace_back(i + 1);
  116.         }
  117.         else if (litera == maxlitery)
  118.             gracze.emplace_back(i + 1);
  119.     }
  120.  
  121.     // std::cout << litery("ENEEWENSSESSWSWESWNN");
  122.  
  123.     std::cout << "dyskwalifikacja: " << dyskw << std::endl;
  124.     std::cout << "maxwynik: " << maxwynik << " - gracz: " << igracza << std::endl;
  125.     for (auto &gracz : gracze)
  126.         std::cout << gracz << " ";
  127.     std::cout << "-> max: " << maxlitery << std::endl;
  128.        
  129.     system("pause");
  130.     return 0;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement