Submission #1186093

#TimeUsernameProblemLanguageResultExecution timeMemory
1186093harvsftwWall (IOI14_wall)C++20
8 / 100
3095 ms12468 KiB
#include <bits/stdc++.h>
#include "wall.h"
using namespace std;

#define F(i, n) for(int i = 0; i < (n); i++)
using pii = pair<int, int>;

pii merge(pii a, pii b) {
    if(a.second < b.first) {
        return {b.first, b.first};
    } else if(b.second < a.first) {
        return {b.second, b.second};
    } else {
        return {max(a.first, b.first), min(a.second, b.second)};
    }
}

void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){
    vector<pair<int, int>> intervals;
    F(i, k) {
        if(op[i] == 1) {
            intervals.emplace_back(height[i], INT_MAX);
        } else if(op[i] == 2) {
            intervals.emplace_back(0, height[i]);
        } else {
            assert(false);
        }
    }

    F(i, n) {
        pii ret = {0, 0};
        F(j, k) {
            if(left[j] <= i && i <= right[j]) {
                ret = merge(ret, intervals[j]);
            }
        }
        finalHeight[i] = ret.first;
    }
}

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