Diferente pentru grigore-moisil-2010/solutii/pietre2 intre reviziile #2 si #3

Nu exista diferente intre titluri.

Diferente intre continut:

== code(cpp)  |
Algoritm Pietre(n,t): 	// n: dimensiunea tabloului t
  max = 0	// lungimea maximă a drumului }
  maxlin = 0 	// linia de unde porneşte cel mai lung drum }
  maxcol = 0	// coloana de unde porneşte cel mai lung drum }
  lin = 1 	// vom încerca să intrăm în tablou pornind din linia 1 }
  max = 0	// lungimea maximă a drumului
  maxlin = 0 	// linia de unde porneşte cel mai lung drum
  maxcol = 0	// coloana de unde porneşte cel mai lung drum
  lin = 1 	// vom încerca să intrăm în tablou pornind din linia 1
  pentru col=1,n execută:
    maxnou = 0 	// maximul actual }
    rez[lin,col] = 1 	// marcăm punctul de pornire }
    cauta(lin,col,2) 	// căutăm un drum având acest punct de start }
    dacă maxnou > max atunci	// actualizarea }
    maxnou = 0 	// maximul actual
    rez[lin,col] = 1 	// marcăm punctul de pornire
    cauta(lin,col,2) 	// căutăm un drum având acest punct de start
    dacă maxnou > max atunci	// actualizarea
      max = maxnou
      maxlin = lin
      maxcol = col
sfârşit(algoritm)
Algoritm Cauta(lin,col,pas):
  pentru i=1,4 execută:	{ un element are 4 vecini }
    lin_nou = lin + x[i] 	//{ indicele de linie al vecinului }
    col_nou = col + y[i]	//{ indicele de coloană }
  pentru i=1,4 execută:	// un element are 4 vecini
    lin_nou = lin + x[i] 	// indicele de linie al vecinului
    col_nou = col + y[i]	// indicele de coloană
	//{ dacă am generat o poziţie pe teren }
    dacă (lin_nou = {1,2,...,n}) şi (col_nou = {1,2,...,n}) atunci
      dacă rez[lin_nou,col_nou] = 0 atunci 	//{ dacă nu am fost aici }
	//{ dacă numărul pietrelor este cu 1 mai mare }
      dacă rez[lin_nou,col_nou] = 0 atunci 	// dacă nu am fost aici
	//{ dacă numărul pietrelor este cu 1 mai mare
        dacă t[lin_nou,col_nou] = t[lin,col] + 1 atunci
          rez[lin_nou,col_nou] = pas	//{ facem pasul }
          dacă pas > maxnou atunci    	{ actualizăm maximul actual }
          rez[lin_nou,col_nou] = pas	// facem pasul
          dacă pas > maxnou atunci    	 //actualizăm maximul actual
            maxnou = pas
          sfârşit(dacă)
          Cauta(lin_nou,col_nou,pas+1) 	{ încercăm să continuăm drumul }
          rez[lin_nou,col_nou] = 0	{ ştergem pasul, pentru că vom căuta alt drum }
          Cauta(lin_nou,col_nou,pas+1) 	// încercăm să continuăm drumul
          rez[lin_nou,col_nou] = 0	// ştergem pasul, pentru că vom căuta alt drum
        sfârşit(dacă)
      sfârşit(dacă)
    sfârşit(dacă)

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.