본문 바로가기

Algorithm

(C++) - 백준(BOJ) 2721번 : 삼각수의 합

반응형

삼각수는 n이 300까지이므로 T(301)까지 필요합니다.

//W(n) = Sum[K=1..n; K*T(k+1)]
#include <iostream>
using namespace std;
int w[302], t[302],a[302];
int n, h;
int main() {
    for (int i = 1; i <= 301; i++)
    {
        a[i] = i;
        t[i] = t[i - 1] + a[i];
    }
    for (int i = 1; i <= 300; i++)
    {
        for (int k = 1; k <= i; k++)
            w[i] += k * t[k + 1];
    }
    cin >> h;
    while (h--)
    {
        cin >> n;
        cout << w[n] << '\n';
    }
}