fork download
  1. /* Author : Nguyen Thanh Tung */
  2.  
  3. #include <bits/stdc++.h>
  4.  
  5. #define endl '\n'
  6. #define int long long
  7.  
  8. using namespace std;
  9.  
  10. typedef pair<int, int> ii;
  11.  
  12. const int N = 1e6 + 7;
  13. const long long oo = 1e18 + 7;
  14. const long long MOD = 1e9 + 7;
  15.  
  16. int n, a[N], b[N];
  17.  
  18. int tknp(int val) {
  19. int ans = -1;
  20. int l = 1, r = n;
  21. while(l <= r) {
  22. int mid = (l + r) / 2;
  23. if(a[mid] > val) {
  24. ans = mid;
  25. r = mid - 1;
  26. }
  27. else {
  28. l = mid + 1;
  29. }
  30. }
  31. return ans;
  32. }
  33.  
  34. void solve() {
  35. cin >> n;
  36. for(int i = 1; i <= n; ++i) {
  37. cin >> a[i];
  38. b[i] = a[i];
  39. }
  40. sort(a + 1, a + n + 1);
  41. for(int i = 1; i <= n; ++i) {
  42. int pos = tknp(b[i]);
  43. if(pos == -1) {
  44. cout << -1 << " ";
  45. continue;
  46. }
  47. cout << a[pos] << " ";
  48. }
  49. }
  50.  
  51. #define TASK "code"
  52.  
  53. signed main () {
  54. ios_base::sync_with_stdio (false);
  55. cin.tie(nullptr), cout.tie(nullptr);
  56. if (fopen(TASK".INP", "r")) {
  57. freopen(TASK".INP", "r", stdin);
  58. freopen(TASK".OUT", "w", stdout);
  59. }
  60. solve();
  61. return 0;
  62. }
  63.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty