Submission #678915

#TimeUsernameProblemLanguageResultExecution timeMemory
678915YENGOYANMoney (IZhO17_money)C++17
25 / 100
1 ms324 KiB
/* //\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\\ \\ // // 271828___182845__904523__53602__ \\ \\ 87___47____13______52____66__24_ // // 97___75____72______47____09___36 \\ \\ 999595_____74______96____69___67 // // 62___77____24______07____66__30_ \\ \\ 35___35____47______59____45713__ // // \\ \\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\// */ #include <iostream> #include <vector> #include <set> #include <map> #include <unordered_map> #include <unordered_map> #include <cmath> #include <climits> #include <algorithm> #include <random> #include <queue> #include <deque> #include <iomanip> #include <string> #include <tuple> #include <bitset> #include <chrono> #include <ctime> #include <fstream> #include <stack> #include <cstdio> using namespace std; using ll = long long; const int N = 3e5 + 5; const ll mod = 1e9 + 7, inf = 1e12; void solve() { // start time : 01:42 int n; cin >> n; vector<int> v(n); for (int i = 0; i < n; ++i) cin >> v[i]; int al = v[0]; int id = 1, cc = 1; set<int> st; for (int i = 1; i < n; ++i) { if (v[i] < v[i - 1]) { break; } id = i + 1; st.insert(v[i]); } int mn = al, mx = v[id - 1]; while (id < n) { int ar = v[id]; if (ar < mn) { ++id; st.insert(ar); int aa = mn; mn = min(mn, ar); mx = max(mx, ar); while (id < n && v[id] <= aa && v[id] >= v[id - 1]) { mn = min(mn, v[id]); mx = max(mx, v[id]); st.insert(v[id]); ++id; } ++cc; } else if (ar >= mx) { ++id; st.insert(ar); mx = max(mx, ar); mn = min(mn, ar); while (id < n && v[id] >= v[id - 1]) { st.insert(v[id]); mn = min(mn, v[id]); mx = max(mx, v[id]); ++id; } ++cc; } else { int iranicmec = *st.upper_bound(ar); mx = max(mx, ar); mn = min(mn, ar); st.insert(ar); ++id; while (id < n && v[id] >= v[id - 1] && v[id] <= iranicmec) { st.insert(v[id]); mn = min(mn, v[id]); mx = max(mx, v[id]); ++id; } ++cc; } } cout << cc; // 3 6 3 6 // dp[i] = {min_seg_cnt, last_segment_length}; } int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); //int t; cin >> t; //while(t--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...