Pitanje ili opis problema
Не може код да ми прође 5. пример јер не знам како да имплементирам кад је низ од више од 2 нуле - стене заредом.
Мој код:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
int h,n,x;
cin >> h >> n;
int niz[n];
for(int i=1; i<=n; i++) niz[i]=1;
for(int i=1; i<=h; i++){
for(int j=1; j<=n; j++){
cin>>x;
if(x==0 && j!=1 && j!=n){
if(niz[j]%2==1){
if(i%2==1){
niz[j-1]+=niz[j]/2+1;
niz[j+1]+=niz[j]/2;
}
else if(i%2==0){
niz[j+1]+=niz[j]/2+1;
niz[j-1]+=niz[j]/2;
}
}else{
niz[j+1]+=niz[j]/2;
niz[j-1]+=niz[j]/2;
}
niz[j]=0;
}
if(x==0 && j==1 && i>1){
niz[2]+=niz[1];
niz[1]=0;
}
if(x==0 && j==1 && i==1){
niz[2]++;
niz[1]=0;
}
if(x==0 && j==n && i>1){
niz[j-1]+=niz[j];
niz[j]=0;
}
if(x==0 && j==n && i==1){
niz[j-1]++;
niz[j]=0;
}
}
}
for(int i=1; i<=n; i++) cout<<niz[i]<<" ";
return 0;
}
Link ka zadatku ili odgovarajućoj stranici
https://drive.google.com/file/d/18GqVZALF90uDjU4_AxKlIbnD-_qXHTdG/view?usp=sharing - текст задатка.
Напомена: 2019/2020. 1. круг квалификација такмичења из програмирања, 3. задатак.