fork(2) download
  1. #include<iostream>
  2. #include<set>
  3. using namespace std;
  4.  
  5. int maxi(int a,int b)
  6. {
  7. if(a>b)
  8. return a;
  9. else
  10. return b;
  11. }
  12.  
  13. int mini(int a,int b)
  14. {
  15. if(a>b)
  16. return b;
  17. else
  18. return a;
  19. }
  20.  
  21. int main()
  22. {
  23. int a,b,c,x,y;
  24. here:;
  25. while(cin>>a>>b>>c>>x>>y)
  26. {
  27.  
  28. if(a==0 && b==0 && c==0 && x==0 && y==0)
  29. return 0;
  30. int max=maxi(x,y),min=mini(x,y);
  31. set<int> pr,res;
  32. pr.insert(a); pr.insert(b); pr.insert(c); pr.insert(x); pr.insert(y);
  33.  
  34. if(x>maxi(maxi(a,b),c) && y>maxi(maxi(a,b),c))
  35. for(int i=1;i<53;i++)
  36. if(pr.find(i)==pr.end())
  37. {cout<<i<<endl; goto here;}
  38.  
  39. bool lost=false;
  40. for(int i=1;i<=6;i++)
  41. {
  42. int m,n,l;
  43.  
  44. if(i==1)
  45. {m=a; n=b; l=c;}
  46.  
  47. if(i==2)
  48. {m=a; n=c; l=b;}
  49.  
  50. if(i==3)
  51. {m=b; n=a; l=c;}
  52.  
  53. if(i==4)
  54. {m=b; n=c; l=a;}
  55.  
  56. if(i==5)
  57. {m=c; n=a; l=b;}
  58.  
  59. if(i==6)
  60. {m=c; n=b; l=a;}
  61. //////////////////////////
  62. if(m>max && n>min)
  63. {cout<<-1<<endl; lost=true; break;}
  64.  
  65. bool na=true;
  66. if(m<min && n<min)
  67. for(int j=maxi(m,n);j<max;j++)
  68. if(pr.find(j)==pr.end())
  69. {res.insert(j); na=false; break;}
  70. if(!na)
  71. break;
  72.  
  73. for(int j=l;j<53;j++)
  74. if(pr.find(j)==pr.end())
  75. {res.insert(j); na=false; break;}
  76.  
  77. if(na)
  78. {cout<<-1<<endl; lost=true; break;}
  79. }
  80.  
  81. if(!res.empty() && !lost)
  82. cout<<*res.rbegin()<<endl;
  83. }
  84. }
Success #stdin #stdout 0s 2856KB
stdin
Standard input is empty
stdout
Standard output is empty