Codeforces Round #648 (Div. 2) | C. Rotation matching Solution


C++ code given below:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.  
  7. int n, a[200000],b[200000],count=0,dist1,max=0;
  8. cin>>n;
  9. map<int,int>m1,m2,pos;
  10. for(int i=1;i<=n;i++)
  11. {
  12. cin>>a[i];
  13. m1[a[i]]=i;
  14. }
  15. for(int i=1;i<=n;i++)
  16. {
  17. cin>>b[i];
  18. m2[b[i]]=i;
  19. }
  20. for(int i=1;i<=n;i++)
  21. {
  22. if(m1[i]<m2[i])
  23. {dist1=m2[i]-m1[i];
  24. pos[dist1]++;
  25. if(pos[dist1]>max)
  26. max=pos[dist1];
  27. }
  28. else
  29. {
  30. dist1=(n-m1[i])+m2[i];
  31. pos[dist1]++;
  32. if(pos[dist1]>max)
  33. max=pos[dist1];}
  34.  
  35.  
  36. }
  37. cout<<max;
  38. }

Comments

Popular posts from this blog

Number of non-unique elements hackerrank - Python

Top 5 Programming Languages You Should Learn in 2020 [Jobs]

Map in c++ - Standard Template Library (STL)