Advertisement
Fahim_7861

Snake's Neck

Oct 21st, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define F first
  4. #define S second
  5. #define ll int
  6. int main()
  7. {
  8. ios_base::sync_with_stdio(false);
  9. cin.tie(NULL);
  10. ll i,j,a,b,n,m;
  11.  
  12. cin>>n;
  13.  
  14. vector<pair<ll,ll> >v;
  15.  
  16. map<pair<ll,ll>,ll>mp;
  17.  
  18.  
  19. for(i=1; i<=n; i++)
  20. {
  21. cin>>a>>b;
  22.  
  23. v.emplace_back(a,b);
  24. }
  25. cin>>m;
  26.  
  27. for(i=1; i<=m; i++)
  28. {
  29. cin>>a>>b;
  30.  
  31. mp[{a,b}]=i;
  32. }
  33.  
  34. ll pre,pos,ans=0;
  35. i=0;
  36. while(i<n)
  37. {
  38. if(mp[{v[i].F,v[i].S}])
  39. {
  40.  
  41.  
  42. pre=mp[{v[i].F,v[i].S}];
  43.  
  44. i++;
  45.  
  46. ll cnt=1;
  47.  
  48.  
  49. while(i<n)
  50. {
  51. pos=mp[{v[i].F,v[i].S}];
  52.  
  53.  
  54. if(pre+1==pos)
  55. {
  56. cnt++;
  57. }
  58. else break;
  59.  
  60. pre=pos;
  61.  
  62. i++;
  63. }
  64. i--;
  65.  
  66. ans=max(ans,cnt);
  67. }
  68. i++;
  69. }
  70. i=0;
  71.  
  72. while(i<n)
  73. {
  74. if(mp[{v[i].F,v[i].S}])
  75. {
  76.  
  77.  
  78. pre=mp[{v[i].F,v[i].S}];
  79.  
  80. i++;
  81.  
  82. ll cnt=1;
  83.  
  84.  
  85. while(i<n)
  86. {
  87. pos=mp[{v[i].F,v[i].S}];
  88.  
  89.  
  90. if(pre==pos+1)
  91. {
  92. cnt++;
  93. }
  94. else break;
  95.  
  96. pre=pos;
  97.  
  98. i++;
  99. }
  100. i--;
  101.  
  102. ans=max(ans,cnt);
  103. }
  104. i++;
  105. }
  106.  
  107.  
  108.  
  109.  
  110.  
  111. cout<<ans<<endl;
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121. return 0;
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement