Algorithm
Problem link- https://www.spoj.com/problems/AP2/
AP2 - AP - Complete The Series (Easy)
Arithmetic and geometric Progressions are 2 of the well known progressions in maths.
Arithmetic progression(AP) is a set in which the difference between 2 numbers in constant. for e.g., 1, 3, 5, 7, 9 ... In this series the difference between 2 numbers is 2.
The task here is very simple indeed.
You will be given the 3rd term , 3rd last term and the sum of the series. You need print length of the series and the series.
Input
First line will contain a number indicating the number of test cases.
Each of the following t lines will have 3 number '3term', '3Lastterm' and 'sum'
3term - is the 3rd term in of the series and
3Lastterm - is the 3rd term in of the series and
sum - is the sum of the series.
Output
For each input of the test case, you need to print 2 lines.
First line should have 1 value - the number of terms in the series.
2nd line of the output should print the series numbers separated by single space.
Example
Input: 1 3 8 55 Output: 10 1 2 3 4 5 6 7 8 9 10
NOTE:
- In all the test cases, all the series elements are positive integers.
- The series will have at least 7 elements.
- number of test cases <=100.
- All the numbers will fit in 64 bits (long long in C)
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include <iostream>
#include <cstdio>
#include <vector>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <sstream>
#include <map>
using namespace std;
int main(){
int t=0;
cin>>t;
while(t--){
long long t1,t2,sum;
cin>>t1>>t2>>sum;
int num=sum*2/(t1+t2);
cout<<num<<endl;
long long diff=t2-t1;
long long gp=diff/(num-6+1);
long long start=t1-2*gp;
for(int i=0;i<num;i++){
cout<<start<<" ";
start+=gp;
}
}
return 0;
}
Copy The Code &
Try With Live Editor
Input
3 8 55
Output
1 2 3 4 5 6 7 8 9 10
Demonstration
SPOJ Solution-AP2 - AP - Complete The Series (Easy)-Solution in C, C++, Java, Python