제출 #1326795

#제출 시각아이디문제언어결과실행 시간메모리
1326795al95ireyizPilot (NOI19_pilot)C++20
100 / 100
996 ms54280 KiB
#pragma GCC optimize("O3", "fast-math", "unroll-loops", "no-stack-protector") #include <bits/stdc++.h> using namespace std; #define ll long long #define vll vector<ll> #define len(x) (ll)x.size() const ll inf = 1e9, infl = 1e18; const ll MOD = 1e9 + 7; const ll maxn = 1e6 + 5; ll n, m, k = 0; array<ll, 2> a[maxn], b[maxn]; void _() { cin >> n >> m; for(ll i = 1; i <= n; i ++){ cin >> a[i][0]; a[i][1] = i; } for(ll i = 1; i <= m; i ++){ cin >> b[i][0]; b[i][1] = i; } sort(a + 1, a + n + 1, greater<array<ll, 2>>()); sort(b + 1, b + m + 1, greater<array<ll, 2>>()); set<array<ll, 2>> s; ll cv = 0; auto add = [&](ll l, ll r) -> void{ s.insert({l, r}); cv += (r - l + 1) * (r - l + 2) / 2; }; auto del = [&](ll l, ll r) -> void{ s.erase({l, r}); cv -= (r - l + 1) * (r - l + 2) / 2; }; add(1, n); for(ll j = 1, i = 1; j <= m; j ++){ while(a[i][0] > b[j][0]){ auto it = s.upper_bound({a[i][1], inf}); it --; auto [l, r] = *it; del(l, r); if(l <= a[i][1] - 1) add(l, a[i][1] - 1); if(a[i][1] + 1 <= r) add(a[i][1] + 1, r); i ++; } b[j][0] = cv; } // for(auto [x, y] : s) cout << x << ' ' << y << '\n'; sort(b + 1, b + m + 1, [&](auto x, auto y){ return x[1] < y[1]; }); for(ll i = 1; i <= m; i ++){ cout << b[i][0] << '\n'; } } signed main() { cin.tie(0)->sync_with_stdio(0); ll t = 1; // cin >> t; while(t --) _(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...