Am rectificat codul pentru cazul cand numaru negativ nu se afla ,,pe margine".Tot nu merge.Idei.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("turist.in");
int a[10][10],n,m,i,j,l=0,v=0,gresit,Sminima=3200,nrlinie,nrcoloana,doarS;
f>>n>>m;
for(i=1;i<=n;i++)for(j=1;j<=m;j++)f>>a[i][j];
for(i=2;i<n;i++){for(j=2;j<m;j++)
{
l=i;v=j;gresit=0;doarS=0;
if(a[i][j]<0)
{
while(v>=1&&gresit==0) //orizonatal stanga
{
v--;
if(a[l][v]<0)gresit=1;
else doarS+=a[l][v];
}
if(gresit==0&&doarS<Sminima)
{
Sminima=doarS;nrcoloana=j;nrlinie=i;
}
l=i;v=j; doarS=0;gresit=0;
while(v<=m&&gresit==0) //orizontal dreapta
{
v++;
if(a[l][v]<0)gresit=1;
else doarS+=a[l][v];
}
if(gresit==0&&doarS<Sminima)
{
Sminima=doarS;nrcoloana = j;nrlinie=i;
}
l=i;v=j; doarS=0;gresit=0;
while(l>=1&&gresit==0) // vertical in jos
{
l--;
if(a[l][v]<0)gresit=1;
else doarS+=a[l][v];
}
if(gresit==0&&doarS<Sminima)
{
Sminima=doarS;nrcoloana = j;nrlinie=i;
}
l=i;v=j; doarS=0;gresit=0;
while(l<=n&&gresit==0) // vertical in sus
{
l--;
if(a[l][v]<0)gresit=1;
else doarS+=a[l][v];
}
if(gresit==0&&doarS<Sminima)
{
Sminima=doarS;nrcoloana = j;nrlinie=i;
}
}
}}
ofstream g("turist.out");
g<<Sminima<<endl<<nrlinie<<endl<<nrcoloana;
}