Submission #635016

#TimeUsernameProblemLanguageResultExecution timeMemory
635016minhcool즐거운 채소 기르기 (JOI14_growing)C++17
100 / 100
102 ms10732 KiB
//#include "ramen.h" #include<bits/stdc++.h> using namespace std; #define int long long #define fi first #define se second #define pb push_back //#define mp make_pair #define foru(i, l, r) for(int i = l; i <= r; i++) #define ford(i, r, l) for(int i = r; i >= l; i--) typedef pair<int, int> ii; typedef pair<ii, int> iii; typedef pair<ii, ii> iiii; const int N = 4e5 + 5; const int oo = 1e18 + 7, mod = 1e9 + 7; int n, a[N]; int BIT[N]; void upd(int id, int val){ for(; id <= n; id += id & -id) BIT[id] += val; } int get(int id){ int ans = 0; for(; id; id -= id & -id) ans += BIT[id]; return ans; } vector<ii> vc; bool cmp(ii a, ii b){ return (a.fi > b.fi); } void process(){ cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i]; vc.pb({a[i], i}); } sort(vc.begin(), vc.end(), cmp); int answer = 0, itr = 0; for(auto it : vc){ while(vc[itr].fi > it.fi){ upd(vc[itr].se, 1); itr++; } //cout << it.fi << " " << it.se << " " << itr << " " << get(it.se - 1) << " ""\n"; answer += min(get(it.se - 1), get(n) - get(it.se)); } cout << answer; } signed main(){ ios_base::sync_with_stdio(0); process(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...