fork download
  1. /*
  2. '########:::::'###::::'##::: ##::'######::::'######:::'#######::'########::'########:'########::
  3.  ##.... ##:::'## ##::: ###:: ##:'##... ##::'##... ##:'##.... ##: ##.... ##: ##.....:: ##.... ##:
  4.  ##:::: ##::'##:. ##:: ####: ##: ##:::..::: ##:::..:: ##:::: ##: ##:::: ##: ##::::::: ##:::: ##:
  5.  ##:::: ##:'##:::. ##: ## ## ##: ##::'####: ##::::::: ##:::: ##: ##:::: ##: ######::: ########::
  6.  ##:::: ##: #########: ##. ####: ##::: ##:: ##::::::: ##:::: ##: ##:::: ##: ##...:::: ##.. ##:::
  7.  ##:::: ##: ##.... ##: ##:. ###: ##::: ##:: ##::: ##: ##:::: ##: ##:::: ##: ##::::::: ##::. ##::
  8.  ########:: ##:::: ##: ##::. ##:. ######:::. ######::. #######:: ########:: ########: ##:::. ##:
  9. ........:::..:::::..::..::::..:::......:::::......::::.......:::........:::........::..:::::..::
  10. */
  11. #include<bits/stdc++.h>
  12. #define FOR(i,a,b) for(int i=a;i<=b;i++)
  13. #define FORD(i,a,b) for(int i=a;i>=b;i--)
  14.  
  15. #define all(x) x.begin(), x.end()
  16. #define rall(x) x.rbegin(), x.rend()
  17. #define pb emplace_back
  18. #define mp make_pair
  19. #define reset(f, x) memset(f, x, sizeof(f))
  20. #define sz(x) int(x.size())
  21. #define bit(x, i) ((x >> i) & 1)
  22.  
  23. #define fi first
  24. #define se second
  25. #define endl "\n"
  26. #define elif else if
  27. #define mid int((l + r) / 2)
  28. #define toL int(id << 1)
  29. #define toR int(id << 1 | 1)
  30.  
  31. #pragma GCC optimize("O3")
  32. #pragma GCC target("avx,avx2,fma,sse4.2")
  33. #pragma GCC optimize("unroll-loops")
  34. using namespace std;
  35. const int MAX = 1e5 + 5;
  36. const int mod = 1e9 + 7;
  37. const int inf = 0x3f3f3f3f;
  38. const long long linf = 1e18;
  39. typedef long long ll;
  40. int st[4*MAX], a[MAX];
  41.  
  42. void build(int id, int l, int r)
  43. {
  44. if(l == r)
  45. {
  46. st[id] = a[l];
  47. return;
  48. }
  49. build(toL, l, mid);
  50. build(toR, mid+1, r);
  51. st[id] = min(st[toL], st[toR]);
  52. }
  53.  
  54. int get(int id, int l, int r, int u, int v)
  55. {
  56. if(v < l || u > r) return inf;
  57. if(u <= l && v >= r) return st[id];
  58. return min(get(toL, l, mid, u, v), get(toR, mid+1, r, u, v));
  59. }
  60.  
  61. void __Dangcoder__()
  62. {
  63. int n; cin >> n;
  64. FOR(i, 1, n) cin >> a[i];
  65. build(1, 1, n);
  66. int ans = 0;
  67. FOR(i, 1, n - 1)
  68. {
  69. int mn = get(1, 1, n, i + 1, n);
  70. ans = max(ans, a[i] - mn);
  71. }
  72. if(ans == 0) cout << "Lo nang roi!";
  73. else cout << ans;
  74. }
  75.  
  76. int main()
  77. {
  78. ios_base::sync_with_stdio(false);
  79. cin.tie(0); cout.tie(0);
  80. if(fopen(".INP", "r")) {
  81. freopen(".INP", "r", stdin);
  82. freopen(".OUT", "w", stdout);
  83. }
  84. int t = 1;
  85. // cin >> t;
  86. while(t--)
  87. {
  88. __Dangcoder__();
  89. }
  90. return 0;
  91. }
  92. /*
  93.  
  94. */
  95.  
Success #stdin #stdout 0.01s 5332KB
stdin
3
1 3 2
stdout
1