Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 25th, 2012  |  syntax: C++  |  size: 2.34 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.     #include <iostream>  
  2.     #include <queue>  
  3.     #include <cstring>  
  4.      
  5.     using namespace std;  
  6.      
  7.     class saati  
  8.     {  
  9.           public:  
  10.       int minuti,saat,potezi;  
  11.     };  
  12.      
  13.     int main()  
  14.     {  
  15.           saati od,za;  
  16.           cin>>od.saat>>od.minuti;  
  17.           cin>>za.saat>>za.minuti;  
  18.           od.potezi=0;  
  19.           za.potezi=0;  
  20.           queue <saati> q;  
  21.           bool mat[30][65];  
  22.           memset(mat,false,sizeof(mat));  
  23.           mat[od.saat+1][od.minuti+1]=true;  
  24.      
  25.           q.push(od);  
  26.           while(!q.empty())  
  27.           {  
  28.                 saati tmp=q.front();  
  29.                 if(tmp.minuti==60)  
  30.                 {  
  31.                       tmp.minuti=0;  
  32.                       tmp.saat++;  
  33.                 }  
  34.                 if(tmp.minuti==-1)  
  35.                 {  
  36.                       tmp.minuti=59;  
  37.                       tmp.saat--;  
  38.                 }  
  39.                 if(tmp.saat==24)  
  40.                 tmp.saat=0;  
  41.                 if(tmp.saat==-1)  
  42.                 tmp.saat=23;  
  43.                 if(tmp.minuti==za.minuti&&tmp.saat==za.saat)  
  44.                 {  
  45.                       cout><<tmp.potezi<<endl;  
  46.                       return 0;  
  47.                 }  
  48.                 q.pop();  
  49.                 saati tmp1=tmp;  
  50.                 tmp1.saat++;  
  51.                 tmp1.potezi++;  
  52.                 if(mat[tmp1.saat+1][tmp1.minuti+1]==false)  
  53.                 q.push(tmp1),  
  54.                 mat[tmp1.saat+1][tmp1.minuti+1]=true;  
  55.                 tmp1=tmp;  
  56.                 tmp1.saat--;  
  57.                 tmp1.potezi++;  
  58.                   if(mat[tmp1.saat+1][tmp1.minuti+1]==false)  
  59.                 q.push(tmp1),  
  60.                 mat[tmp1.saat+1][tmp1.minuti+1]=true;  
  61.                 tmp1=tmp;  
  62.                 tmp1.minuti++;  
  63.                 tmp1.potezi++;  
  64.                   if(mat[tmp1.saat+1][tmp1.minuti+1]==false)  
  65.                 q.push(tmp1),  
  66.                 mat[tmp1.saat+1][tmp1.minuti+1]=true;  
  67.                 tmp1=tmp;  
  68.                 tmp1.minuti--;  
  69.                 tmp1.potezi++;  
  70.                   if(mat[tmp1.saat+1][tmp1.minuti+1]==false)  
  71.                 q.push(tmp1),  
  72.                 mat[tmp1.saat+1][tmp1.minuti+1]=true;  
  73.           }  
  74.      
  75.         return 0;  
  76.     }