fork(3) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int n;
  5. cin>>n;
  6. int a[n],b[n];
  7. int max=1000000;
  8. vector<int> c1[max+1],c2[max+1];
  9. for(int i=0;i<n;i++){
  10. cin>>a[i];
  11. c1[a[i]].push_back(a[i]);
  12. }
  13. for(int i=0;i<n;i++){
  14. cin>>b[i];
  15. c2[b[i]].push_back(b[i]);
  16. }
  17. for(int i=max;i>=1;i--){
  18. //cout<<i<<endl;
  19. int f1=0,f2=0;
  20. for(int j=i;j<=max;j+=i){
  21. if(c1[j].size()>0){
  22. f1=1;
  23. break;
  24. }
  25. }
  26. for(int j=i;j<=max;j+=i){
  27. if(c2[j].size()>0){
  28. f2=1;
  29. break;
  30. }
  31. }
  32. if(f1 && f2){
  33. int max1=0,max2=0;
  34. for(int j=i;j<=max;j+=i){
  35. if(c1[j].size()){
  36. for(int k=0;k<c1[j].size();k++){
  37. if(max1<c1[j][k])
  38. max1=c1[j][k];
  39. }
  40. }
  41. }
  42. for(int j=i;j<=max;j+=i){
  43. if(c2[j].size()){
  44. for(int k=0;k<c2[j].size();k++){
  45. if(max2<c2[j][k])
  46. max2=c2[j][k];
  47. }
  48. }
  49. }
  50. cout<<max1+max2;
  51. return 0;
  52. }
  53. }
  54. }
Success #stdin #stdout 0.2s 61992KB
stdin
5
3 1 4 2 8
5 2 12 8 3
stdout
16