Description
Suppose there are a polynomial which has n nonzero terms, please print the integration polynomial of the given polynomial.
The polynomial will be given in the following way, and you should print the result in the same way:
k[1] e[1] k[2] e[2] ... k[n] e[n]
where k[i] and e[i] respectively represent the coefficients and exponents of nonzero terms, and satisfies e[1] < e[2] < ... < e[n].
Note:
- Suppose that the constant term of the integration polynomial is 0.
- If one coefficient of the integration polynomial is an integer, print it directly.
- If one coefficient of the integration polynomial is not an integer, please print it by using fraction a/b which satisfies thata is
- coprime to b.
Output
Print the integration polynomial in one line with the same format as the input.
Notice that no extra space is allowed at the end of each line.
Sample Output
1 1 1 3 2/5 5
Hint
f(x) = 1 + 3x2 + 2x4
After integrating we get: ∫f(x)dx = x + x3 + (2/5)x5
<span style="font-family:SimSun;font-size:18px;">#include <cstdio>#include <algorithm>#include <cmath>using namespace std;int n,key;struct node{ int k,e;} st[1002];int main(){ while(~scanf("%d",&n)) { for(int i=1; i<=n; i++) { int cc; scanf("%d %d",&st[i].k,&cc); st[i].e=cc+1; } for(int i=1; i<=n; i++) { if(st[i].k%st[i].e==0) printf("%d %d%c",st[i].k/st[i].e,st[i].e,i==n?'\n':' '); else { int pp; if(st[i].k<0) //求两个数能同时整除的数时用两个数的正值求 pp=-st[i].k; else pp=st[i].k; key=__gcd(pp,st[i].e); printf("%d/%d %d%c",st[i].k/key,st[i].e/key,st[i].e,i==n?'\n':' '); } } } return 0;}</span>