python-dirbtuves / it-brandos-egzaminai

Informacinių technologijų brandos egzaminų, programavimo praktinių užduočių sprendimai
GNU Affero General Public License v3.0
13 stars 13 forks source link

2014/pagrindinis/u2 - Marsaeigis #5

Open dz0 opened 9 years ago

dz0 commented 9 years ago
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int x1, y1;
struct komandos{
    int k;
    int seka[30];
    int x;
    int y;
};

int main(){
ifstream duomenys("U2.txt");
ofstream rezultatai("U2rez.txt");
int x0, y0, n;
duomenys>>x0>>y0>>x1>>y1>>n;
struct komandos cmd[n];
for(int i=0; i<n; i++){
    duomenys>>cmd[i].k;
    for(int j=0; j<cmd[i].k; j++){
        duomenys>>cmd[i].seka[j];
    }
}
    int k, a; //a yra uzkoduota komanda

for(int i=0; i<n; i++){
        cmd[i].x=x0;
        cmd[i].y=y0;
        k=cmd[i].k;
    for(int j=0; j<k; j++){
            a=cmd[i].seka[j];
        switch(a){
            case 1: cmd[i].y++; break;
            case 2: cmd[i].x++; break;
            case 3: cmd[i].y--; break;
            case 4: cmd[i].x--; break;
        }
        if(cmd[i].x==x1 && cmd[i].y==y1){
            cmd[i].k=j+1;
            break;
        }
    }
}
cout<<cmd[0].x<<" "<<cmd[0].y<<endl;
for(int i=0; i<n; i++){
    if(cmd[i].x==x1&&cmd[i].y==y1){
        rezultatai<<left<<setw(20)<<"pasiektas tikslas";
    }
    else {
        rezultatai<<left<<setw(20)<<"sekos pabaiga";
    }
    for(int j=0; j<cmd[i].k; j++){
        rezultatai<<cmd[i].seka[j]<<" ";
    }
    rezultatai<<cmd[i].k<<endl;
}

return 0;
}