Thursday 27 July 2017

Lightoj 1141 - Number Transformation

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int s, t;
  4. int p[] = { 2357,  11,  13,  17,  19,  23,  29
  5. ,  31,  37,  41,  43,  47,  53,  59,  61,  67,  71
  6. ,  73,  79,  83,  89,  97101103107109113
  7. 127131137139149151157163167173
  8. 179181191193197199211223227229
  9. 233239241251257263269271277281
  10. 283293307311313317331337347349
  11. 353359367373379383389397401409
  12. 419421431433439443449457461463
  13. 467479487491499503509521523541
  14. 547557563569571577587593599601
  15. 607613617619631641643647653659
  16. 661673677683691701709719727733
  17. 739743751757761769773787797809
  18. 811821823827829839853857859863
  19. 877881883887907911919929937941
  20. 947953967971977983991997,1009};
  21. int visited[1005];
  22. int bfs(){
  23.     list< pair<int,int> > q;
  24.     q.push_back(make_pair(s, 0));
  25.     while(!q.empty()){
  26.         int source = q.front().first;
  27.         int dist = q.front().second;
  28.         visited[source] = 1;
  29.         q.pop_front();
  30.         if(source == t){
  31.                 return dist;
  32.             }
  33.         for(int i = 0; source+p[i]<=t; i++){
  34.  
  35.             if((source+p[i] == t )&& (source%p[i] == 0)&& (source != p[i])){
  36.                 return dist+1;
  37.             }
  38.             else if((!visited[source+p[i]])&& (source%p[i] == 0) && (source!= p[i])){
  39.                 q.push_back(make_pair(source+p[i], dist+1));
  40.             }
  41.         }
  42.     }
  43.     return -1;
  44. }
  45.  
  46. int main()
  47. {
  48.     int ts;
  49.     cin>>ts;
  50.     for(int i = 1; i <= ts; i++){
  51.     cin>>s>>t;
  52.     memset(visited, 0sizeof(visited));
  53.     cout<<"Case "<<i<<": "<<bfs()<<endl;
  54.     }
  55. }

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...