• Source
    1. #include <iostream>
    2. #include <cstdio>
    3. using namespace std;
    4. const int N=30;
    5. int a[N][N],b[N][N];
    6. int n,m;
    7. void makeminusone()
    8. {
    9. for(int i=1;i<=n;i++)
    10. for(int j=1;j<=m;j++)
    11. a[i][j]=-1;
    12. }
    13. int main()
    14. {
    15. int k,z,i,j,c,d,x,y,e,f,g,h;
    16. cin>>n>>m;
    17. cin>>x>>y;
    18. for(i=1;i<=n;i++)
    19. for(j=1;j<=m;j++)
    20. {
    21. cin>>a[i][j];
    22. b[i][j]=-1;
    23. }
    24. b[x][y]=a[x][y];
    25. for(k=1;k<=n;k++)
    26. for(z=1;z<=m;z++)
    27. {
    28. for(i=1;i<=n;i++)
    29. for(j=1;j<=m;j++)
    30. {
    31. if(b[i][j]!=-1)
    32. {
    33. if(i+1<=n)
    34. b[i+1][j]=max(b[i+1][j],b[i][j]-a[i+1][j]);
    35. if(j+1<=m)
    36. b[i][j+1]=max(b[i][j+1],b[i][j]-a[i][j+1]);
    37. }
    38. }
    39. }
    40. if(b[n][m]==-1)
    41. cout<<"N"<<endl;
    42. else
    43. cout<<"Y"<<endl<<b[n][m]<<endl;
    44. return 0;
    45. }
    46.