Submission #202353

#TimeUsernameProblemLanguageResultExecution timeMemory
202353a_playerWall (IOI14_wall)C++14
0 / 100
3069 ms19320 KiB
#include <bits/stdc++.h>

using namespace std;
#define fh finalHeight

const int MAXN=1e5+1;
int m[MAXN][2];
int t[MAXN][2];

void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){
    for(int i=0;i<n;i++)m[i][1]=INT_MAX;
  for(int i=0;i<k;i++){
      if(op[i]==1){
          for(int j=left[i];j<=right[i];j++){
              if(m[j][0]<=height[i]){
                  m[j][0]=height[i];
                  t[j][0]=i;
              }
          }
          
      }else{
          for(int j=left[i];j<=right[i];j++){
              if(m[j][1]>=height[i]){
                  m[j][1]=height[i];
                  t[j][1]=i;
              }
          }
      }

  }
  for(int i=0;i<n;i++){
      if(m[i][0]>=m[i][1]&&t[i][0]>t[i][1])fh[i]=m[i][0];
      if(m[i][0]>=m[i][1]&&t[i][0]<t[i][1])fh[i]=m[i][1];
      if(m[i][0]<=m[i][1])fh[i]=m[i][0];
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...