고고학자 예린 (백준 20953)

코딩생활·2023년 12월 11일
0

백준문제풀이

목록 보기
109/308

안녕하세요. 오늘은 고고학을 연구할 거예요.

문제

https://www.acmicpc.net/problem/20953

아이디어

for (k=0;k<j;k++) sum++;
은 sum+=j랑 똑같습니다.

또한 for (j=0;j<a+b;j++) sum+=j;
는 0부터 a+b-1까지의 합이므로 (a+b-1)x(a+b)/2가 됩니다.
그래서 sum+=(a+b-1)x(a+b)/2가 됩니다.

for (i=0;i<a+b;i++) sum+=(a+b-1)x(a+b)/2;
는 그냥 a+b번 반복이므로
sum=(a+b-1)x(a+b)x(a+b)/2가 됩니다.

소스코드

#include <iostream>
using namespace std;

int main(void)
{
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	long long T;

	cin >> T;
	while (T--)
	{
		long long a, b;
		cin >> a >> b;

		cout << (a + b - 1) * (a + b) * (a + b) / 2 << "\n";
	}
}


감사합니다.

0개의 댓글