美文网首页PAT (Advanced Level) Practice
1002 A+B for Polynomials (25poin

1002 A+B for Polynomials (25poin

作者: iphelf | 来源:发表于2020-02-27 23:20 被阅读0次

    简单模拟。不解释。

    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    const int MAXN=1e3;
    bool present[MAXN+1];
    double sum[MAXN+1];
    
    int main(void) {
    //    freopen("in.txt","r",stdin);
        int k,n;
        double a;
        memset(sum,0,sizeof sum);
        memset(present,false,sizeof present);
        scanf("%d",&k);
        for(int i=0;i<k;i++){
            scanf("%d%lf",&n,&a);
            present[n]=true;
            sum[n]+=a;
        }
        scanf("%d",&k);
        for(int i=0;i<k;i++){
            scanf("%d%lf",&n,&a);
            present[n]=true;
            sum[n]+=a;
        }
        int cnt=0;
        for(int i=0;i<=MAXN;i++) if(present[i] && sum[i]!=0) cnt++;
        printf("%d",cnt);
        for(int i=MAXN;i>=0;i--) if(present[i] && sum[i]!=0)
            printf(" %d %.1f",i,sum[i]);
        putchar('\n');
        return 0;
    }
    
    /*
    Sample Input:
    2 1 2.4 0 3.2
    2 2 1.5 1 0.5
    
    Sample Output:
    3 2 1.5 1 2.9 0 3.2
    */
    
    

    相关文章

      网友评论

        本文标题:1002 A+B for Polynomials (25poin

        本文链接:https://www.haomeiwen.com/subject/uyqqhhtx.html