Advertisement
shamiul93

1113 - Discover the Web

Oct 17th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.73 KB | None | 0 0
  1. /*
  2. @author - Rumman
  3. Problem - 1113 - Discover the Web
  4. */
  5.  
  6. // LightOJ always needs this format for sure..so I made a copy of it...
  7. #include <bits/stdc++.h>
  8. #include<vector>
  9. #define ll                                      long long int
  10. #define ull                                     unsigned long long
  11. #define ld                                      long double
  12.  
  13. #define ff                                      first
  14. #define ss                                      second
  15.  
  16. #define fi                                      freopen("in.txt", "r", stdin)
  17. #define fo                                      freopen("out.txt", "w", stdout)
  18. #define m0(a) memset(a , 0 , sizeof(a))
  19. #define m1(a) memset(a , -1 , sizeof(a))
  20. #define pi acos(-1.0)
  21. #define debug                                   printf("yes\n")
  22. #define what_is(x)                              cout << #x << " is " << x << endl
  23. #define pf                                      printf
  24. #define sf                                      scanf
  25.  
  26. #define pb                                      push_back
  27. #define mp                                      make_pair
  28. #define eb                                      emplace_back
  29. #define pii                                     pair<int, int>
  30. #define piii                                    pair<pii, int>
  31.  
  32. #define SQR(a)                                  ((a)*(a))
  33. #define QUBE(a)                                 ((a)*(a)*(a))
  34.  
  35. #define scanI(a)                                scanf("%d",&a)
  36. #define scanI2(a,b)                             scanI(a) , scanI(b)
  37. #define scanI3(a,b,c)                           scanI(a), scanI(b), scanI(c)
  38. #define scanI4(a,b,c,d)                         scanI(a), scanI(b), scanI(c), scanI(d)
  39.  
  40. #define scanLL(a)                                scanf("%lld",&a)
  41. #define scanLL2(a,b)                             scanL(a) , scanL(b)
  42. #define scanLL3(a,b,c)                           scanL(a), scanL(b), scanL(c)
  43. #define scanLL4(a,b,c,d)                         scanL(a), scanL(b), scanL(c), scanL(d)
  44.  
  45. #define inf LLONG_MAX
  46. #define minf LLONG_MIN
  47. #define min3(a,b,c) min(a,min(b,c))
  48. #define max3(a,b,c) max(a,max(b,c))
  49. #define ones(mask)  __builtin_popcount(mask)
  50. #define mx 150000
  51.  
  52.  
  53. using namespace std;
  54.  
  55. ll N, Q ;
  56. vector<ll> v[100010] ;
  57.  
  58. stack<string> Forward, Backward ;
  59.  
  60. void printStacks()
  61. {
  62.     cout << endl ;
  63.     cout << "Backward Size: " << Backward.size() << endl ;
  64.  
  65.     stack <string> tem ;
  66.  
  67.     while(!Backward.empty())
  68.     {
  69.         string s ;
  70.         s = Backward.top();
  71.         cout << s << endl ;
  72.         tem.push(s) ;
  73.         Backward.pop() ;
  74.     }
  75.     while(!tem.empty())
  76.     {
  77.         Backward.push(tem.top()) ;
  78.         tem.pop() ;
  79.     }
  80.  
  81.     cout << endl ;
  82.     cout << "Forward Size: " << Forward.size() << endl ;
  83.  
  84.     while(!Forward.empty())
  85.     {
  86.         string s ;
  87.         s = Forward.top();
  88.         cout << s << endl ;
  89.         tem.push(s) ;
  90.         Forward.pop() ;
  91.     }
  92.     while(!tem.empty())
  93.     {
  94.         Forward.push(tem.top()) ;
  95.         tem.pop() ;
  96.     }
  97. }
  98.  
  99. int main()
  100. {
  101. //    fi ;
  102. //    fo ;
  103.     string Current ;
  104.  
  105.     ll T, t = 0 ;
  106.     cin >> T ;
  107.     while(T--)
  108.     {
  109.         while(!Backward.empty())
  110.         {
  111.             Backward.pop();
  112.         }
  113.         while(!Forward.empty())
  114.         {
  115.             Forward.pop() ;
  116.         }
  117.         t++;
  118.         printf("Case %lld:\n", t) ;
  119.         string  command ;
  120.  
  121.         Current = "http://www.lightoj.com/" ;
  122.  
  123.  
  124.         while(cin >> command && command != "QUIT")
  125.         {
  126.             if(command == "BACK")
  127.             {
  128.                 if(Backward.size() == 0)
  129.                 {
  130.                     printf("Ignored\n");
  131.                 }
  132.                 else
  133.                 {
  134.                     Forward.push(Current) ;
  135.                     Current = Backward.top() ;
  136.                     Backward.pop() ;
  137.                     cout << Current << endl ;
  138.                 }
  139.             }
  140.             else if(command == "FORWARD")
  141.             {
  142.                 if(Forward.size() == 0)
  143.                 {
  144.                     printf("Ignored\n");
  145.                 }
  146.                 else
  147.                 {
  148.                     Backward.push(Current) ;
  149.                     Current = Forward.top();
  150.                     Forward.pop();
  151.                     cout << Current << endl ;
  152.                 }
  153.             }
  154.             else if(command == "VISIT")
  155.             {
  156.                 string url ;
  157.                 cin >> url ;
  158.  
  159.                 Backward.push(Current) ;
  160.                 Current = url ;
  161.  
  162.                 cout << Current << endl ;
  163.  
  164.                 while(!Forward.empty())
  165.                 {
  166.                     Forward.pop() ;
  167.                 }
  168.             }
  169.         }
  170.     }
  171.     return 0 ;
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement