Announcement

Collapse
No announcement yet.

[Tư vấn] Thật sự em rất hoang mang

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Tư vấn] Thật sự em rất hoang mang

    Chuyện là hôm qua em lên CodeChef luyện công, mọi chuyện rất suông sẻ cho đến khi SUBMIT bài https://www.codechef.com/problems/SUMTRIAN, mặc dù chạy trong máy đúng nhưng khi submit cứ bị lỗi NZEC mãi em sửa cả ngày rồi vẫn ko đc, ức chế quá đi :beatbrick:
    Đại ca nào rảnh nhìn hộ code em tý với :sosad:
    Code:
    import java.io.IOException;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.io.BufferedOutputStream;
    
    public class Main {
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            PrintWriter pw = new PrintWriter(new BufferedOutputStream(System.out));
            int t = Integer.parseInt(br.readLine());
            // reusable dynamic programming table
            int[][] arr = new int[100][100];
            /*// init borders, doesn't require in Java
            for (int i = 0; i < 99; ++i) {
                arr[i][0] = arr[i][i + 1] = 0;
            }*/
            String s;
            for (int i = 0; i < t; ++i) {
                int n = Integer.parseInt(br.readLine());
                arr[1][1] = Integer.parseInt(br.readLine());
                for (int j = 2; j < n; ++j) {
                    s = br.readLine();
                    for (int k = 1; k <= j; ++k) {
                        int temp = Integer.parseInt(s.split(" ")[k - 1]);
                        if (temp + arr[j - 1][k - 1] > temp + arr[j - 1][k]) {
                            arr[j][k] = temp + arr[j - 1][k - 1];
                        }
                        else {
                            arr[j][k] = temp + arr[j - 1][k];
                        }
                    }
                }
                s = br.readLine();
                int max = 0;
                for (int k = 1; k <= n; ++k) {
                    int temp = Integer.parseInt(s.split(" ")[k - 1]);
                    if (temp + arr[n - 1][k - 1] > temp + arr[n - 1][k]) {
                        arr[n][k] = temp + arr[n - 1][k - 1];
                    }
                    else {
                        arr[n][k] = temp + arr[n - 1][k];
                    }
                    if (arr[n][k] > max) {
                        max = arr[n][k];
                    }
                }
                pw.println(max);
                // print out dynamic programming table
                /*for (int j = 0; j <= n; ++j) {
                    for (int k = 0; k <= n; ++k) {
                        pw.print(arr[j][k] + " ");
                    }
                    pw.println();
                }*/
            }
            br.close();
            pw.close();
        }
    }

  • #2
    Code:
    import java.io.IOException;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.io.BufferedOutputStream;
    
    public class Main 
    {
        public static void main(String[] args) throws IOException 
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            PrintWriter pw = new PrintWriter(new BufferedOutputStream(System.out));
            int t = Integer.parseInt(br.readLine());
    
            int[][] arr = new int[110][110];
    		int i, j, k, temp, n;
            String s;
            for (i = 0; i < t; ++i) 
    	{
                n = Integer.parseInt(br.readLine());
                for (j = 1; j <= n; ++j) 
    	    {
                    s = br.readLine();
                    for (k = 1; k <= j; ++k) 
    	        {
                        temp = Integer.parseInt(s.split(" ")[k - 1]);
                        if (arr[j - 1][k - 1] > arr[j - 1][k]) 
                            arr[j][k] = temp + arr[j - 1][k - 1];
                        else 
                            arr[j][k] = temp + arr[j - 1][k];
                    }
                }
                k = 0;
                for (j = 1; j <= n; ++j)
    	         if(arr[n][j] > k)
    		      k = arr[n][j];
                pw.println(k);
            }
            br.close();
            pw.close();
        }
    }
    Last edited by 14520820; 28-09-2016, 23:14. Reason: chỉnh tab

    Comment

    LHQC

    Collapse
    Working...
    X