Guest User

Untitled

a guest
Jun 18th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. void preprocess(int *arr,int size){
  6. for(int i=0;i<size-1;i++){
  7. if(arr[i]==arr[i+1])
  8. arr[i]=INT_MAX;
  9. }
  10. }
  11.  
  12. void commonele(int *arr1,int *arr2,int *arr3,int n1,int n2,int n3){
  13. int i=0,j=0,k=0,flag=0;
  14. preprocess(arr1,n1);
  15. preprocess(arr2,n2);
  16. preprocess(arr3,n3);
  17. while((i<n1) && (j<n2) && (k<n3)){
  18. if(arr1[i]==INT_MAX){
  19. i++;
  20. continue;
  21. }else if(arr2[j]==INT_MAX){
  22. j++;
  23. continue;
  24. }else if(arr3[k]==INT_MAX){
  25. k++;
  26. continue;
  27. }
  28.  
  29. if(arr1[i]==arr2[j] && arr2[j]==arr3[k]){
  30. flag=1;
  31. cout<<arr1[i]<<" ";
  32. i++;j++;k++;
  33. }else if(arr1[i] < arr2[j] && arr1[i]<arr3[k]){
  34. i++;
  35. }else if(arr2[j] < arr1[i] && arr2[j]<arr3[k]){
  36. j++;
  37. }else if(arr3[k]<arr1[i] && arr3[k]<arr2[j]){
  38. k++;
  39. }else{
  40. if((arr1[i]==arr2[j]) && (arr3[k]<arr1[i]) ){
  41. k++;
  42. }else{
  43. i++;j++;
  44. }
  45. if((arr2[j]==arr3[k]) && (arr1[i]<arr3[k]) ){
  46. i++;
  47. }else{
  48. k++;j++;
  49. }
  50. if((arr1[i]==arr3[k]) && (arr2[j]<arr1[i]) ){
  51. j++;
  52. }else{
  53. i++;k++;
  54. }
  55. }
  56. }
  57. if(!flag){
  58. cout<<-1;
  59. }
  60. cout<<endl;
  61. }
  62.  
  63. int main(){
  64.  
  65. int tc;
  66. cin>>tc;
  67. while(tc--){
  68. int n1,n2,n3;
  69. cin>>n1>>n2>>n3;
  70. int *arr1=new int[n1];
  71. int *arr2=new int[n2];
  72. int *arr3=new int[n3];
  73. for(int i=0;i<n1;i++)
  74. cin>>arr1[i];
  75. for(int i=0;i<n2;i++)
  76. cin>>arr2[i];
  77. for(int i=0;i<n3;i++)
  78. cin>>arr3[i];
  79.  
  80. commonele(arr1,arr2,arr3,n1,n2,n3);
  81. }
  82.  
  83.  
  84.  
  85.  
  86. return 0;}
Add Comment
Please, Sign In to add comment