Buongiorno stavo cercando di risolvere taglialegna e non riesco a sottoporre il mio codice il problema è la funzione “Abbatti” e il paradosso e che se non la sottopongo con il codice mi dice che la funzione non è stata dichiarata (giustamente) ma se la sottopongo mi dice che è stata gia dichiarata mi potreste aiutare a risolvere, vi lascio qui il codice che mando in sottoposizione grazie in anticipo!
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
void Abbatti(int indice, int direzione){
cout<<indice<<" "<<direzione<<"\n";
}
void Pianifica(int N, int altezza[]){
vector<int>left(N);
vector<int>right(N);
for (int i=N-1;i>=0;i--) {
right[i]=i;
for (int j=i;j<i+altezza[i] && j<N;j++)
right[i]=max(right[i],right[j]);
}
for (int i=0;i<N;i++) {
left[i]=i;
for (int j=i;j>i-altezza[i] && j>=0;j--)
left[i]=min(left[i],left[j]);
}
/*for(int i=0;i<N;i++){
cout<<left[i]<<" ";
}
cout<<"\n";
for(int i=0;i<N;i++){
cout<<right[i]<<" ";
}
cout<<"\n";*/
int i=0;
while(i<N){
int imax=i;
for(int j=i+1;j<N;j++){
if(left[j]<=i){
imax=max(imax,j);
}
}
if(imax>right[i]){
Abbatti(imax,0);
i=imax+1;
}
else{
Abbatti(i,1);
i=right[i]+1;
}
}
}