https://www.acmicpc.net/problem/1812
N이 홀수이기 때문에, - + 를 이렇게 반복해주면 2 * 1번이 남게된다.
이를 활용하면 간단.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
vector<int> v(N);
for (int i = 0; i < N; i++)
cin >> v[i];
int first = 0;
vector<int> result(N);
for (int i = 0; i < N; i++)
{
if (i % 2 == 0)
first += v[i];
else
first -= v[i];
}
first /= 2;
result[0] = first;
for (int i = 1; i < N; i++)
{
result[i] = v[i - 1] - result[i - 1];
}
for (int i = 0; i < N; i++)
cout << result[i] << '\n';
}
'백준 문제풀이 > 실버4' 카테고리의 다른 글
백준 1302 - 베스트셀러 (0) | 2022.05.08 |
---|---|
백준 1205번 - 등수 구하기 (0) | 2022.03.17 |
백준 1543번 - 문서 검색 (0) | 2022.03.17 |
백준 4949번 - 균형잡힌 세상 (0) | 2022.03.05 |
백준 10828번 - 스택 (0) | 2022.01.13 |