제출 #878190

#제출 시각아이디문제언어결과실행 시간메모리
878190heeheeheehaawMoney (IZhO17_money)C++17
100 / 100
991 ms62184 KiB
#include <bits/stdc++.h> using namespace std; int n, aib[1000005]; int v[1000005]; void update(int poz, int val) { for(int i = poz; i <= 1000000; i += (i & (-i))) aib[i] += val; return; } int query(int poz) { int sum = 0; for(int i = poz; i >= 1; i -= (i & (-i))) sum += aib[i]; return sum; } int main() { map<int, int> m1, m2; cin>>n; for(int i =1 ; i <= n; i++) cin>>v[i], m1[v[i]] = 1; /*int cnt = 0; for(auto it : m1) m2[it.first] = ++cnt; for(int i = 1; i <= n; i++) [i] = m*/ int rez = 1, prev = 0; vector<int> secv; for(int i = 1; i <= n; i++) { if(v[i] < v[i - 1] || query(v[i] - 1) - query(prev) > 0) { for(auto it : secv) update(it, 1); secv.clear(); secv.push_back(v[i]); prev = v[i]; rez++; } else { secv.push_back(v[i]); } } cout<<rez; 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...