Advertisement
Guest User

Menuleigis

a guest
Jan 2nd, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream>
  4. #include <sstream>
  5.  
  6. using namespace std;
  7.  
  8. int PradinisX;
  9. int PradinisY;
  10. int KomanduSekuSkaicius;
  11. vector<vector<int> > KomanduSekos;
  12.  
  13. void PasiimtiDuomenis() {
  14.     ifstream duomenys("duomenys.txt");
  15.     duomenys >> PradinisX >> PradinisY;
  16.     duomenys >> KomanduSekuSkaicius;
  17.     vector<int> komanduSeka;
  18.     int komanda;
  19.     int komanduSekosIlgis;
  20.     for (int i = 0; i < KomanduSekuSkaicius; i++) {
  21.         duomenys >> komanduSekosIlgis;
  22.         for (int p = 0; p < komanduSekosIlgis; p++) {
  23.             duomenys >> komanda;
  24.             komanduSeka.push_back(komanda);
  25.         }
  26.         KomanduSekos.push_back(komanduSeka);
  27.         komanduSeka.clear();
  28.     }
  29.     duomenys.close();
  30. }
  31.  
  32. void AtliktiKomanda(int komanda, int &x, int &y) {
  33.     switch (komanda) {
  34.     case 1:
  35.         x++;
  36.         y++;
  37.         break;
  38.     case 2:
  39.         x++;
  40.         y--;
  41.         break;
  42.     case 3:
  43.         x--;
  44.         y--;
  45.         break;
  46.     case 4:
  47.         x--;
  48.         y++;
  49.         break;
  50.     }
  51. }
  52.  
  53. void AtliktiSeka(vector<int> komanduSeka) {
  54.     int x = PradinisX;
  55.     int y = PradinisY;
  56.  
  57.     int atliktuKomanduSkaicius = 0;
  58.     ostringstream oss;
  59.  
  60.     for (int i = 0; i < komanduSeka.size(); i++) {
  61.         AtliktiKomanda(komanduSeka[i], x, y);
  62.  
  63.         atliktuKomanduSkaicius++;
  64.         oss << komanduSeka[i] << " ";
  65.  
  66.         if (x == PradinisX && y == PradinisY) {
  67.             cout << "pasiektas tikslas" << " " << oss.str() << atliktuKomanduSkaicius << endl;
  68.             return;
  69.         }
  70.     }
  71.  
  72.     cout << "sekos pabaiga" << " " << oss.str() << atliktuKomanduSkaicius << " " << x << " " << y << endl;
  73. }
  74.  
  75. int main()
  76. {
  77.     PasiimtiDuomenis();
  78.  
  79.     for (int i = 0; i < KomanduSekuSkaicius; i++) {
  80.         AtliktiSeka(KomanduSekos[i]);
  81.     }
  82.  
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement