Submission #1303394

#TimeUsernameProblemLanguageResultExecution timeMemory
1303394duchieulcMoney (IZhO17_money)C++20
0 / 100
1 ms568 KiB
#include <bits/stdc++.h> #define TIME (1.0 * clock() / CLOCKS_PER_SEC) #define F first #define S second #define pb push_back using namespace std; typedef long long ll; typedef pair<ll,ll> pll; const ll MAX = 1e6+7; const ll MOD = 1e9+7; ll n,a[MAX]; vector <pll> v; void solve() { cin >> n; for(ll i=1; i<=n; ++i) cin >> a[i]; ll l = 1; for(ll i=1; i<=n+1; ++i) { if(a[i] < a[i-1]) { v.pb({a[l],a[i-1]}); l = i; } } sort(v.begin(), v.end(), [](pll x, pll y) { if(x.F == y.F) return x.S > y.S; return x.F < y.F; }); set <pll> s; s.insert({0,0}); for(auto i:v) { for(auto it = s.rbegin(); it!=s.rend(); ++it) { if(it->S <= i.F || it->F <= i.F && i.S <= it->S) { s.insert(i); break; } else { s.insert({it->S, i.S}); i.S = it->S; } } } cout << s.size() - 1; // for(auto it = s.rbegin (); it != s.rend(); ++it) { // cout << it->F << " " << it->S << "\n"; // } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //if(fopen("TASK.INP","r")) { // freopen("TASK.INP","r",stdin); // freopen("TASK.OUT","w",stdout); //} solve(); cerr << "\n" << "Time elapsed: " << TIME << "s\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...