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
3
Ti-am atasat programul in C++.
Anexe:
VasileAlexandri:
sa-ti traiasca nepotii
Alte întrebări interesante
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă