Informatică, întrebare adresată de VasileAlexandri, 9 ani în urmă

Ma chinui de o zi la Saritura_Calului1 (#384) de pe pbinfo. De ce primesc doar 96 de puncte... Ajutor sunt in impas

#include
using namespace std;

ifstream in("saritura_calului1.in");
ofstream out("saritura_calului1.out");

int n, m, xc, yc, h[101][101], pas;
int dx[8]={-1,1,2,2,1,-1,-2,-2}, dy[8]={2,2,1,-1,-2,-2,-1,1};

void citire()
{
in>>n>>m>>xc>>yc;
in.close();
}

void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++) out< out< }
out.close();
}

bool valid(int i, int j){return i>=1&&i<=n&&j>=1&&j<=m;}

int nrpoz(int i, int j)
{
int x=0, iu, ju;
for(int d=0;d<8;d++)
{
iu=i+dx[d]; ju=j+dy[d];
if(valid(iu,ju)&&h[iu][ju]==0) x++;
}
return x;
}

void greedy(int i, int j)
{
int v, _min=9, iu, ju, ii, jj, d;
bool gasit=false;
h[i][j]=pas+1;
for(d=0;d<8;d++)
{
iu=i+dx[d]; ju=j+dy[d];
if(valid(iu,ju)&&h[iu][ju]==0)
{
v=nrpoz(iu,ju);
if(v<_min) { _min=v; ii=iu; jj=ju; gasit=true; }
}
}
if(gasit)
{
pas++;
greedy(ii,jj);
}

}

int main()
{
citire();
h[xc][yc]=1;
greedy(xc,yc);
afisare();
return 0;
}

Răspunsuri la întrebare

Răspuns de ap53
3
Ti-am atasat programul in C++.
Anexe:

VasileAlexandri: sa-ti traiasca nepotii
ap53: :)
Alte întrebări interesante