Advertisement
a53

traseu3

a53
Mar 14th, 2019
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. ///O((n*m*n)
  2. ///parcurgerea crescatoare a valorilor,
  3. ///eliminarea elementelor vizitate
  4. ///si comparare doar cu ultimul element din linie
  5. #include <fstream>
  6. using namespace std;
  7. ifstream fin("traseu.in");
  8. ofstream fout("traseu.out");
  9. struct pozitie{
  10. short l,c;
  11. };
  12. int main(){
  13. int n,m;
  14. fin>>n>>m;
  15. pozitie f[n*m+5];
  16. short pleft[n+5][m+5],pright[n+5][m+5];
  17. int a[n+5][m+5],d,dm,i,j,i1,i2,j1,j2;
  18. for(i=1;i<=n;i++){
  19. pright[i][0]=1;
  20. for(j=1;j<=m;j++){
  21. fin>>a[i][j];
  22. pleft[i][j]=j-1;
  23. pright[i][j]=j+1;
  24. f[a[i][j]]={i,j};
  25. }
  26. pleft[i][m+1]=m;
  27. }
  28. dm=0;
  29. for(i=1;i<=n*m;i++){
  30. i1=f[i].l; j1=f[i].c;
  31. pleft[i1][pright[i1][j1]]=pleft[i1][j1];
  32. pright[i1][pleft[i1][j1]]=pright[i1][j1];
  33. for(i2=i1;i2<=n;i2++){
  34. j2=pleft[i2][m+1];
  35. if(j1<=j2){
  36. dm=max(dm,i2-i1+j2-j1);
  37. }
  38. }
  39. }
  40. if(dm==0)fout<<0;
  41. else fout<<dm+1;
  42. fout.close(); fin.close();
  43. return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement