Submission #555722

#TimeUsernameProblemLanguageResultExecution timeMemory
555722Jarif_RahmanFortune Telling 2 (JOI14_fortune_telling2)C++17
4 / 100
3048 ms1884 KiB
#include <bits/stdc++.h> #define pb push_back #define f first #define sc second using namespace std; typedef long long int ll; typedef string str; #ifdef LOCAL #define debug(s) for(auto x: s) cerr << x << " "; cerr << #s << "\n"; #endif int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; vector<ll> A(n), B(n); vector<pair<ll, int>> T(k); for(int i = 0; i < n; i++) cin >> A[i] >> B[i]; for(int i = 0; i < k; i++) cin >> T[i].f, T[i].sc = i; sort(T.begin(), T.end()); ll ans = 0; for(int i = 0; i < n; i++){ auto it2 = lower_bound(T.begin(), T.end(), make_pair(max(A[i], B[i]), -1)); auto it1 = lower_bound(T.begin(), T.end(), make_pair(min(A[i], B[i]), -1)); vector<int> ss; for(auto it = it2; it != T.end(); it++) ss.pb(it->sc); sort(ss.begin(), ss.end()); int ls = -1; for(auto it = it1; it != it2; it++){ ls = max(ls, it->sc); } if(ls == -1) ans+=int(ss.size())%2? B[i]:A[i]; else ans+=(ss.end()-lower_bound(ss.begin(), ss.end(), ls))%2?min(A[i], B[i]):max(A[i], B[i]); } cout << ans << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...