Răspuns :
Am rescris programul, daca ai nelamuriri lasa-le mai jos.
// daca se cunoaste ca in vectorul de tarcuri exista cel putin un tarc cu fix o oaie, atunci
// se scade 1 din fiecare element al vectorului, altfel se scade un tarc intreg care are
// valoarea mai mare decat 1
#include <iostream>
using namespace std;
int v[100], tarcCuOOaie;
int tarc (int n) {
int i,zile=0,ok=0,tarcCuOOaieLocal;
while (ok==0) {
tarcCuOOaieLocal=0;
if(tarcCuOOaie==1) {
for(i=1; i<=n; i++) {
if(v[i]>0) v[i]--;
if(v[i]==1) tarcCuOOaieLocal=1;
}
tarcCuOOaie=tarcCuOOaieLocal;
zile++;
}
else {
i=0;
do {
v[i++];
}
while(v[i]<=1);
v[i]=0;
zile++;
}
for(i=1; i<=n; i++)
if(v[i]!=0) {ok=0; break;}
else ok=1;
}
return zile;
}
int main() {
int n,i;
cin>>n;
for(i=1; i<=n; i++) {
cin>>v[i];
if(v[i]==1) tarcCuOOaie=1;
}
cout<<tarc(n);
return 0;
}