Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <queue>
- #include <cstring>
- using namespace std;
- class saati
- {
- public:
- int minuti,saat,potezi;
- };
- int main()
- {
- saati od,za;
- cin>>od.saat>>od.minuti;
- cin>>za.saat>>za.minuti;
- od.potezi=0;
- za.potezi=0;
- queue <saati> q;
- bool mat[30][65];
- memset(mat,false,sizeof(mat));
- mat[od.saat+1][od.minuti+1]=true;
- q.push(od);
- while(!q.empty())
- {
- saati tmp=q.front();
- if(tmp.minuti==60)
- {
- tmp.minuti=0;
- tmp.saat++;
- }
- if(tmp.minuti==-1)
- {
- tmp.minuti=59;
- tmp.saat--;
- }
- if(tmp.saat==24)
- tmp.saat=0;
- if(tmp.saat==-1)
- tmp.saat=23;
- if(tmp.minuti==za.minuti&&tmp.saat==za.saat)
- {
- cout><<tmp.potezi<<endl;
- return 0;
- }
- q.pop();
- saati tmp1=tmp;
- tmp1.saat++;
- tmp1.potezi++;
- if(mat[tmp1.saat+1][tmp1.minuti+1]==false)
- q.push(tmp1),
- mat[tmp1.saat+1][tmp1.minuti+1]=true;
- tmp1=tmp;
- tmp1.saat--;
- tmp1.potezi++;
- if(mat[tmp1.saat+1][tmp1.minuti+1]==false)
- q.push(tmp1),
- mat[tmp1.saat+1][tmp1.minuti+1]=true;
- tmp1=tmp;
- tmp1.minuti++;
- tmp1.potezi++;
- if(mat[tmp1.saat+1][tmp1.minuti+1]==false)
- q.push(tmp1),
- mat[tmp1.saat+1][tmp1.minuti+1]=true;
- tmp1=tmp;
- tmp1.minuti--;
- tmp1.potezi++;
- if(mat[tmp1.saat+1][tmp1.minuti+1]==false)
- q.push(tmp1),
- mat[tmp1.saat+1][tmp1.minuti+1]=true;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment