fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define fi first
  4. #define se second
  5. #define all(x) (x).begin(), (x).end()
  6. #define MASK(i) (1LL<<(i))
  7. #define BIT(i,n) (((n)>>(i)) & 1LL)
  8.  
  9. typedef long long ll;
  10. typedef pair<int, int> pii;
  11.  
  12. template <class X, class Y> bool mini(X& x, const Y& y) {
  13. if(x > y){ x = y; return 1; }
  14. return 0;
  15. }
  16.  
  17. template <class X, class Y> bool maxi(X& x, const Y& y) {
  18. if(x < y){ x = y; return 1; }
  19. return 0;
  20. }
  21.  
  22. const int X = 1e5 + 5;
  23.  
  24. int n, mx = -1e9, mi = 1e9, cnt[X << 1], a[X], cntM, cntP;
  25.  
  26. int main()
  27. {
  28. ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
  29.  
  30. cin >> n;
  31. for(int i = 1; i <= n; ++i){
  32. cin >> a[i];
  33. ++cnt[a[i] + X];
  34. }
  35.  
  36. if(cnt[X] >= 2){
  37. for(int i = 1; i <= n; ++i)
  38. maxi(mx, a[i]), mini(mi, a[i]);
  39. cout << mx << " " << mi;
  40. return 0;
  41. }
  42.  
  43. for(int i = 0; i < X; ++i)
  44. cntM += cnt[i];
  45. for(int i = X + 1; i < (X << 1); ++i)
  46. cntP += cnt[i];
  47.  
  48. if(cnt[X] == 1){
  49. if(cntM&1){
  50. for(int i = 1; i <= n; ++i)
  51. maxi(mx, a[i]), mini(mi, a[i]);
  52. cout << mx << " " << mi;
  53. return 0;
  54. }
  55. else {
  56. cout << 0 << " " << 0;
  57. return 0;
  58. }
  59. }
  60.  
  61. // cnt[X] == 0
  62. if(cntM&1){
  63. for(int i = X - 1; ~i; --i)
  64. if(cnt[i]){
  65. cout << i << " " << i;
  66. return 0;
  67. }
  68. }
  69. else {
  70. for(int i = X + 1; i < (X << 1); ++i)
  71. if(cnt[i]){
  72. cout << i << " " << i;
  73. return 0;
  74. }
  75. }
  76.  
  77. return 0;
  78. }
  79.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Standard output is empty