ошибка C2131: выражение не было константой - PullRequest
1 голос
/ 30 сентября 2019

Когда я запускаю программу в кодовых блоках, она работает нормально. но когда я представил его в codeforces, это показывает ошибку. Почему? я видел некоторые решения для одномерных массивов. а как насчет многомерных массивов? как взять переменную длину для многомерных массивов?

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{
  int h,w;
  cin>>h>>w;
  int hi[h],wi[w],arr[h][w];
  memset(arr,0,sizeof(arr));
  long long int result=1;
  for(int i=0;i<h;i++)cin>>hi[i];
  for(int i=0;i<w;i++)cin>>wi[i];
  for(int i=0;i<h;i++){
    for(int j=0;j<=hi[i];j++){
      if(j!=w)arr[i][j]=1;
    }
  }
  for(int i=0;i<w;i++){
    for(int j=0;j<=wi[i];j++){
      if(j!=h)arr[j][i]=1;
    }
  }
  for(int i=0;i<h;i++){
    for(int j=0;j<w;j++){
      //cout<< arr[i][j]<<" ";
      if(arr[i][j]==0){
          result*=2;
      }
    }
    //cout<<endl;
  }
  if(result==1)result=0;
  printf("%lld\n",result%1000000007);
  return 0;
}
...