PAT 甲級 1009 Product of Polynomials【水題】

醉了,一開始錯是因爲把≤1000看成了<1000,結果5個樣例錯3個,改過來就A了

//1009

double a[1005],b[1005],c[2005];

int main(){
    int n,m,t1;
    double t2;
    while(scanf("%d",&n)!=EOF){
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        memset(c,0,sizeof(c));
        while(n--){
            scanf("%d %lf",&t1,&t2);
            a[t1] = t2;
        }
        scanf("%d",&m);
        while(m--){
            scanf("%d %lf",&t1,&t2);
            b[t1] = t2;
        }
        for(int i=0;i<=1000;i++)
            for(int j = 0;j<=1000;j++)
                c[i+j] += a[i]*b[j];
        int cnt = 0;
        for(int i=0;i<=2000;i++)
        {
            if(c[i]) cnt++;
        }
        if(!cnt) printf("0\n");
        else {
            printf("%d",cnt);
            for(int i=2000;i>=0;i--)
            {
                if(c[i]) printf(" %d %0.1f",i,c[i]);
            }
            printf("\n");
        }

    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章