fork download
  1. #include <iostream> // std::cout
  2. #include <algorithm> // std::sort
  3. #include <vector> // std::vector
  4.  
  5.  
  6. int CountSamePositions(std::vector<int> &A, std::vector<int> &B)
  7. {
  8. int count = 0;
  9. for(int i = 0; i < 3; i++)
  10. if(A[i] == B[i])
  11. count ++;
  12.  
  13. return count;
  14. }
  15.  
  16. int CountSameNumbers(std::vector<int> A, std::vector<int> B)
  17. {
  18. std::sort(A.begin(), A.begin() + 3);
  19. std::sort(B.begin(), B.begin() + 3);
  20.  
  21. int count = 0;
  22. for(int i = 0, j = 0; i < 3 && j < 3;)
  23. if(A[i] < B[j])
  24. i ++;
  25. else if(A[i] > B[j])
  26. j ++;
  27. else
  28. count ++, i ++, j ++;
  29.  
  30. return count;
  31. }
  32.  
  33. int main(void) {
  34. int a = 1, b = 2, c = 3;
  35. int d = 2, e = 4, f = 3;
  36.  
  37. std::vector<int> A, B;
  38. A.push_back(a); A.push_back(b); A.push_back(c);
  39. B.push_back(d); B.push_back(e); B.push_back(f);
  40.  
  41. int samepos = CountSamePositions(A, B);
  42. int samenum = CountSameNumbers(A, B);
  43.  
  44. if(samepos == 3)
  45. std::cout << "You won!\n";
  46. else if(samenum > 0)
  47. std::cout << "You guessed " << samenum << " numbers, " << samepos << " of them at right positions.\n";
  48. else
  49. std::cout << "You failed to guess any number. :(\n";
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
You guessed 2numbers, 1 of them at right positions.