The link for the problem AP2 - AP - Complete The Series (Easy) is:
http://www.spoj.com/problems/AP2/
The logic used in this problem AP2 - AP - Complete The Series (Easy) is:
This problem is used AP formulas.We have A[3] and A[N-3] and Sum of Series (S) in the given input.But we don't know about N and we need to calculate it.
We know the sum of Series of AP: ((A[1]+A[N]/2)*N
Given A[3] which is equal toA[3]=A[1]+2*D
So A[1] = A[3] - 2*D
and A[N] is given by A[N] = A[N-2] + 2*DSo ((A[1]+A[N]/2)*N becomes :
S = ((A[3]-2*D+A[N-2]+2*D)/2)*N
In this, we can know the value of N by:
N=2*S/(A[3]+A[N-2])
For Finding D in these formulas we have to use the thing:
suppose consider the series for example:
3 6 9 12 15 18 21 24
Suppose we know A[3] 9 and A[N-2] 18 So to find the D for this we must use the formula:
A[N-2]-A[3]/(No of terms in between them +1)
The following is CPP solution for this "AP2 - AP - Complete The Series (Easy)" is:
#include<iostream> #include<cstdio> #define LL long long int using namespace std; int main() { int T; cin>>T; while(T--) { LL a3,an3,sum,d,n,a; cin>>a3>>an3>>sum; n = (2*sum)/(a3+an3); d = (an3-a3)/(n-5); a = a3-(2*d); cout<<n<<endl; for(int i=0;i<n;i++) cout<<(a+(i*d))<<" "; cout<<endl; } return 0; }
Happy Coding........
No comments:
Post a comment