Submission #1301230

#TimeUsernameProblemLanguageResultExecution timeMemory
1301230BuiDucManh123Pilot (NOI19_pilot)C++20
100 / 100
900 ms62096 KiB
#include <bits/stdc++.h> #define TN "" using namespace std; mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count()); #define ll long long #define int ll int n, q, ans, res[1000009]; set<pair<int, int>> st; int cost(int x){ return x * (x + 1) / 2; } void add(int x){ auto id = st.upper_bound({x, 1e9}); id--; int l = id->first, r = id->second; ans -= cost(r - l + 1); st.erase(id); if(l < x){ st.insert({l, x - 1}); ans += cost(x - l); } if(x < r){ st.insert({x + 1, r}); ans += cost(r - x); } } void Solve(){ cin >> n >> q; vector<pair<int, int>> v; for(int i = 1; i <= n; i++){ int x; cin >> x; v.push_back({x, i}); } ans = n * (n + 1) / 2; for(int i = 1; i <= q; i++){ int x; cin >> x; v.push_back({x, i + n}); } sort(v.begin(), v.end(), greater<>()); st.insert({1, n}); for(pair<int, int> x : v){ if(x.second <= n){ add(x.second); }else{ res[x.second - n] = ans; } } for(int i = 1; i <= q; i++){ cout << res[i] << "\n"; } } signed main() { if(fopen(TN".inp", "r")){ freopen(TN".inp", "r", stdin); freopen(TN".out", "w", stdout); } ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int test = 1; //cin >> test; while(test--){ Solve(); } return 0; }

Compilation message (stderr)

pilot.cpp: In function 'int main()':
pilot.cpp:56:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   56 |         freopen(TN".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
pilot.cpp:57:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   57 |         freopen(TN".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...