方程转换 | ||||||
| ||||||
Description | ||||||
小A和小B是灰常好的盆友,小A总是能把小B难住,这次小B给小A出了一道期末必考题。 已知,f(x)=ax6+bx5+cx4+dx3+ex2+fx+g;现在我们要把方程替换成另外一种形式,f(m,n,p,i,j,k)=am+bn+cp+di+ej+fk+z;也就是,m=x6,n=x5,p=x4,i=x3,j=x2,k=x,z=g。 | ||||||
Input | ||||||
有多组测试数据,第一行T(T<100),代表有T组测试数据,然后输入a,b,c,d,e,f,g的值,a,b,c,d,e,f,g均为小于10的9次方的整数。 | ||||||
Output | ||||||
输出替换后的方程。 | ||||||
Sample Input | ||||||
3 2 8 19 -6 72 13 100 36 0 4 0 8 17 3 0 0 0 0 0 0 0 | ||||||
Sample Output | ||||||
2m+8n+19p-6i+72j+13k+100 36m+4p+8j+17k+3 0 | ||||||
Source | ||||||
2014暑假集训练习赛(7月30日) |
#include<iostream> #include<queue> #include<cstdio> using namespace std; struct data { int num,pos; } a[103]; int main() { int t; cin>>t; while(t--) { int f=0; queue<data>q; for(int i=0; i<7; i++) { scanf("%d",&a[i].num); a[i].pos=i; if(a[i].num!=0) q.push(a[i]); } while(!q.empty()) { data z=q.front(); q.pop(); if(f&&z.num>0) printf("+"); if(z.num!=1) if(z.num==-1&&z.pos!=6) printf("-"); else printf("%d",z.num); if(z.num==1&&z.pos==6) printf("1"); f=1; if(z.pos==0) printf("m"); else if(z.pos==1) printf("n"); else if(z.pos==2) printf("p"); else if(z.pos==3) printf("i"); else if(z.pos==4) printf("j"); else if(z.pos==5) printf("k"); } if(f) printf("\n"); else printf("0\n"); } } |
33
0 0 0 0 0 0 1
1 1 1 1 1 1 1
1 1 1 1 -1 1 -1