Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.22 KB | None | 0 0
  1. //package solution368;
  2. import java.io.*;
  3. import java.util.*;
  4.  
  5. public class Main {
  6.  
  7.     StreamTokenizer in;
  8.     PrintWriter out;
  9.  
  10.     public static void main(String[] args) throws Exception {
  11.         new Main().run();
  12.     }
  13.  
  14.     public void run() throws Exception {
  15.         //in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
  16.         in=new StreamTokenizer(new BufferedReader(new FileReader("input.txt")));
  17.         //out= new PrintWriter(new OutputStreamWriter(System.out));
  18.         out=new PrintWriter("output.txt");
  19.         solve();
  20.         out.flush();
  21.     }
  22.  
  23.     int  nextInt() throws Exception {
  24.         in.nextToken();
  25.         return (int) in.nval;
  26.     }
  27.  
  28.     String next() throws Exception {
  29.         in.nextToken();return in.sval;
  30.     }
  31.  
  32.     public void solve() throws Exception {
  33.         int n=nextInt();
  34.         in.ordinaryChars('0','9');
  35.         in.wordChars('0', '9');
  36.         int [][] a = new int [n+1][n+1];
  37.         int [][] b = new int [n+1][n+1];
  38.         char [][] c = new char [n+1][n+1];
  39.         for (int i=0; i<n;i++)
  40.             for (int j=0; j<n;j++)
  41.                 c[i][j]='.';
  42.         c[0][0]='#';
  43.         c[n-1][n-1]='#';
  44.         for (int i=0;i<n;i++)
  45.         {
  46.             String s =next() ;
  47.             for (int j=0; j<n;j++)
  48.                 a[i][j]=s.charAt(j)-'0';
  49.         }
  50.         b[0][0]=a[0][0];
  51.         for (int i=1; i<n;i++)
  52.         {
  53.             b[i][0]=b[i-1][0]+a[i][0];
  54.         }
  55.         for (int i=1; i<n;i++)
  56.         {
  57.             b[0][i]=b[0][i-1]+a[0][i];
  58.         }
  59.         for (int i=1; i<n;i++)
  60.             for (int j=1; j<n;j++)
  61.             {
  62.                 b[i][j]=Math.min(b[i-1][j], b[i][j-1])+a[i][j];
  63.             }
  64.         int i=n-1;
  65.         int j=n-1;
  66.         while (i!=0&&j!=0)
  67.         {
  68.         if (b[i][j-1]<b[i-1][j]) {c[i][j-1]='#';j--;}
  69.                 else {c[i-1][j]='#';i--;}
  70.         }
  71.         if (i==0)
  72.             for (int k=j;k>=0;k--)
  73.                 c[0][k]='#';
  74.         if (j==0)
  75.             for (int k=i;k>=0;k--)
  76.                 c[k][0]='#';
  77.  
  78.         for (int k=0;k<n;k++)
  79.         {
  80.             for (int l=0; l<n;l++)
  81.         out.print(c[k][l]);
  82.             out.println();
  83.         }
  84.     }
  85.  
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement