美文网首页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