ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3-6: 준혁이의 수열
    Math 2018. 10. 24. 20:01

    준혁이의 수열 (sequencesum.cpp)

     

    문제


    준혁이는 양의 정수 N개로 이루어진 수열 A의 정체를 아무에게나 알려주고 싶지 않았다. 그래서 준혁이는 수열 A의 모든 두 수의 합만을 적어놓고 이를 S라고 했다. 이 때, 수열 A를 구하는 프로그램을 작성하시오.  

    입력


    첫째 줄에 수열의 크기 N이 주어진다. (3 ≤ N ≤ 1000)

    다음 N개 줄에는 100,000보다 작거나 같은 양의 정수가 N개씩 주어진다. 이 숫자들은 S를 이루는 숫자이며, S(i,j) = A[i] + A[j] (i≠j), S(i,j) = 0 (i=j) 이다. S(i,j)는 i번째 줄, j번째 숫자를 의미하며, A[i]는 A의 i번째 수이다.

    입력으로 주어지는 S에 해당하는 수열 A는 항상 유일하다.  

    출력


    첫째 줄에 수열 A를 출력한다.

     

    예제 입력

    4
    0 3 6 7
    3 0 5 6
    6 5 0 9
    7 6 9 0

    예제 출력

    2 1 4 5

     

    출처


    COCI 2012/2013 Contest #6 2번  

    힌트


    즉 S의 2행 3열(예제에서는 5)이 의미하는 바는 A[2] + A[3] (예제에서는 1+4) 이다.


    import java.util.Scanner;

    public class SequenceSum {

    /**
    *
    * 준혁이는 양의 정수 N개로 이루어진 수열 A의 정체를 아무에게나 알려주고 싶지 않았다. 그래서 준혁이는 수열 A의 모든 두 수의 합만을 적어놓고 이를 S라고 했다. 이 때, 수열 A를 구하는 프로그램을 작성하시오.
    *
    * 첫째 줄에 수열의 크기 N이 주어진다. (3 ≤ N ≤ 1000)
    *
    * 다음 N개 줄에는 100,000보다 작거나 같은 양의 정수가 N개씩 주어진다. 이 숫자들은 S를 이루는 숫자이며, S(i,j) = A[i] + A[j] (i≠j), S(i,j) = 0 (i=j) 이다. S(i,j)는 i번째 줄, j번째 숫자를 의미하며, A[i]는 A의 i번째 수이다.
    *
    * 입력으로 주어지는 S에 해당하는 수열 A는 항상 유일하다.
    *
    * 4
    * 0 3 6 7
    * 3 0 5 6
    * 6 5 0 9
    * 7 6 9 0
    *
    * 2 1 4 5
    *
    * @param args
    */

    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int N = sc.nextInt();
    int S[][] = new int[N][N];
    int A[] = new int[N];

    for (int i=0; i<N; i++){
    for (int j=0; j<N; j++){
    S[i][j] = sc.nextInt();
    }
    }

    // for (int i=0; i<N; i++){
    // for (int j=0; j<N; j++){
    //
    // }
    // }


    for (int i=0; i<N-2; i++){
    A[i] = (S[i][i+1] + S[i][i+2] - S[i+1][i+2])/2;
    }

    A[N-2] = S[N-3][N-2] - A[N-3];
    A[N-1] = S[N-2][N-1] - A[N-2];


    for (int i=0; i<N; i++){
    System.out.print(A[i] + " ");
    }

    }
    }


    'Math' 카테고리의 다른 글

    3-8: 조합 0의 개수  (0) 2018.10.24
    3-7: 파스칼의 삼각형과 조합  (0) 2018.10.24
    3-5: 홍준이와 수열 (PROSJEK)  (0) 2018.10.24
    3-4: 피보나치 수열  (0) 2018.10.24
    3-3: Fly me to the Alpha Centauri  (0) 2018.10.24
Designed by Tistory.