Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 477 Alee : Aprilie 12, 2016, 12:24:28
Salut ! Imi poate spune cineva de ce iau Memory limit exceeded la testele 7 si 8 ?
Cod:
#include <fstream>

using namespace std;

ifstream in ("alee.in");
ofstream ou ("alee.out");

int v[177][177],n,m;

struct coord{
    int lin,col;
};

coord gate,q[180*180],p,w;

int vl[]={-1,0,1,0};
int vc[]={0,1,0,-1};

int prim=1,ultim=1;

int main()
{
    int a,b,i,j;
    in>>n>>m;
    for (i=1;i<=m;++i){
        in>>a>>b;
        v[a][b]=-1;
    }
    for (i=0;i<=n+1;++i){
        v[i][0]=v[i][n+1]=v[0][i]=v[n+1][i]=-1;
    }
    in>>gate.lin>>gate.col>>a>>b;
    q[1].lin=gate.lin;
    q[1].col=gate.col;
    v[gate.lin][gate.col]=1;
    while (prim<=ultim && v[a][b]==0){
        p.lin=q[prim].lin;
        p.col=q[prim].col;
        prim++;
        for (i=0;i<=3;++i){
            w.lin=p.lin+vl[i];
            w.col=p.col+vc[i];
            if (v[w.lin][w.col]==0){
                v[w.lin][w.col]=v[p.lin][p.col]+1;
                ultim++;
                q[ultim].lin=w.lin;
                q[ultim].col=w.col;
            }
        }
    }
    ou<<v[a][b]<<"\n";
    ou.close();
    return 0;
}
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines