Submission #414965

#TimeUsernameProblemLanguageResultExecution timeMemory
414965LouayFarahWall (IOI14_wall)C++14
8 / 100
3100 ms13948 KiB
#include "bits/stdc++.h"
#include "wall.h"
using namespace std;

void bruteforce(int l, int r, int h, int c, int finalHeight[])
{
    for(int i = l; i<=r; i++)
    {
        if(c==1)
        {
            if(finalHeight[i]<h)
                finalHeight[i] = h;
        }
        else
        {
            if(finalHeight[i]>h)
                finalHeight[i] = h;
        }
    }
}
void dc(int l, int r, int h, int c, int finalHeight[])
{
    if(r-l<=3)
    {
        bruteforce(l, r, h, c, finalHeight);
        return;
    }

    int mid = (l+r)/2;

    dc(l, mid-1, h, c, finalHeight);
    dc(mid, r, h, c, finalHeight);
}

void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[])
{
    for(int i = 0; i<n; i++)
        finalHeight[i] = 0;

    int c, l, r, h;
    for(int q = 0; q<k; q++)
    {
        c = op[q];
        l = left[q];
        r = right[q];
        h = height[q];

        dc(l, r, h, c, finalHeight);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...