알고리즘 : 기본정수론
수빈이와 수열
시간 제한 | 메모리 제한 |
1초 | 32MB |
문제
수빈이는 심심해서 수열을 가지고 놀고 있다. 먼저, 정수 수열 A를 쓴다. 그리고 그 아래에 정수 수열 A의 해당 항까지의 평균값을 그 항으로 하는 정수 수열 B를 쓴다.
예를 들어, 수열 A가 1, 3, 2, 6, 8이라면, 수열 B는 1/1, (1+3)/2, (1+3+2)/3, (1+3+2+6)/4, (1+3+2+6+8)/5, 즉, 1, 2, 2, 3, 4가 된다.
수열 B가 주어질 때, 수빈이의 규칙에 따른 수열 A는 뭘까?
입력
첫째 줄에는 수열 B의 길이만큼 정수 N(1 ≤ N ≤ 100)이 주어지고, 둘째 줄에는 수열 Bi를 이루는 N개의 정수가 주어진다. (1 ≤ Bi ≤ 109)
출력
첫째 줄에는 수열 A를 이루는 N개의 정수를 출력한다. (1 ≤ Ai ≤ 109)
예제 입력 1
1 2
예제 출력 1
2
예제 입력 2
4 3 2 3 5
예제 출력 2
3 1 5 11
예제 입력 3
5 1 2 2 3 4
예제 출력 3
1 3 2 6 8
출처
Contest > Croatian Open Competition in Informatics > COCI 2014/2015 > Contest #1 1번
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
private static final int MAX = 105;
private static int[] in = new int[MAX];
private static final String SPACE = " ";
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine().trim());
StringTokenizer st = new StringTokenizer(br.readLine().trim(), SPACE);
for (int i = 0; i < N; i++) {
in[i] = Integer.parseInt(st.nextToken());
if(i == 0) sb.append(in[i]).append(SPACE);
else sb.append(in[i] * (i+1) - in[i-1] * i).append(SPACE);
}
bw.write(sb.toString());
bw.close();
br.close();
}
}
메모리 | 시간 |
14148KB | 136ms |
출처
'알고리즘' 카테고리의 다른 글
정렬/나이순 정렬 백준 10814번 (0) | 2021.10.03 |
---|---|
기본정수론/피보나치 수 백준 2747번 (0) | 2021.10.03 |
문자열/조합 0의 개수 백준 2004번 (0) | 2021.09.26 |
문자열/패린드롬조사 백준 10988번 (0) | 2021.09.26 |
기본정수론/벌집 백준 2292번 (0) | 2021.09.25 |