Submission #1084925

#TimeUsernameProblemLanguageResultExecution timeMemory
1084925pemguimnFortune Telling 2 (JOI14_fortune_telling2)C++14
4 / 100
3020 ms2264 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 2e5 + 5;
int n, k, a[N], b[N], t[N], sufmax[N];

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

    cin >> n >> k;
    for(int i = 1; i <= n; i++) cin >> a[i] >> b[i];
    for(int i = 1; i <= k; i++) cin >> t[i];

    for(int i = k; i >= 1; i--) sufmax[i] = max(sufmax[i + 1], t[i]);

    long long ans = 0;

    for(int i = 1; i <= n; i++){
        int pos = -1, cnt = 0;
        for(int j = k; j >= 1; j--){
            if(t[j] >= min(a[i], b[i]) && t[j] < max(a[i], b[i])){
                pos = j;
            }
            if(t[j] >= max(a[i], b[i])) cnt++;
            if(pos != -1) break;
        }
        if(pos != -1){
            if(cnt & 1) ans += min(a[i], b[i]);
            else ans += max(a[i], b[i]);
        } else{
            if(cnt & 1) ans += b[i];
            else ans += a[i];
        }
    }

    cout << ans << '\n';
    return 0;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...