안녕하세요. 오늘은 고고학을 연구할 거예요.
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";
}
}
감사합니다.