POJ 3086 Triangular Sums
Triangular Sums
| Time Limit:1000 MS |
|
Memory Limit:65536 K |
| Total Submissions:6371 |
|
Accepted:4529 |
Description
TheNThTriangularNumber,T(N) = 1 +... +N, Is the sum of the firstN Integers. It is the number of points in a triangular arrayN Points on side. For exampleT(4):
XX XX X XX X X X
Write a program to compute the weighted sum of triangular numbers:
W(N) =SUM[k = 1…n; k * T(k + 1)]
Input
The first line of input contains a single integerN, (1 ≤N≤ 1000) which is the number of datasets that follow.
Each dataset consists of a single line of input containing a single integerN, (1 ≤N≤ 300), which is the number of points on a side of the triangle.
Output
For each dataset, output on a single line the dataset number (1 throughN), A blank, the valueNFor the dataset, a blank, and the weighted sum,W(N), Of triangular numbersN.
Sample Input
434510
Sample Output
1 3 452 4 1053 5 2104 10 2145
Source
Greater New York 2006 looks for a regular question. In fact, the question has already been quite clear. I typed the table first and then output it. I started to fear the time limit. So I kept making a mistake and simply calculated it separately. Code:
#include
#include #include
using namespace std;int f[305],T[305],sum[305];int main(){ int i,j,n,m; T[1]=1;f[1]=1; for(i=2;i<305;i++) T[i]=i+T[i-1]; for(i=1;i<304;i++) f[i]=i*T[i+1]; sum[1]=f[1]; for(i=2;i<305;i++) sum[i]=sum[i-1]+f[i]; while(scanf("%d",&n)!=EOF&&n) { for(i=1;i<=n;i++) { scanf("%d",&m); printf("%d %d %d\n",i,m,sum[m]); } } return 0;}