1002 A+B for Polynomials - 模拟

思路:普通模拟一下就ok

代码如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
#include<queue>
#include<cmath>
#include<set>
#define ll long long
using namespace std;
const int N=1005,mod=1e9+7;
double a1[N],a2[N],ans[N];
int main(){
    int k1,k2,n;
    double a;
    memset(a1,0,sizeof(a1));
    memset(a2,0,sizeof(a2));
    scanf("%d",&k1);
    int max1=0,max2=0;
    for(int i=1;i<=k1;i++){
        scanf("%d%lf",&n,&a);
        max1=max(max1,n);
        a1[n]=a;
    }
    scanf("%d",&k2);
    for(int i=1;i<=k2;i++){
        scanf("%d%lf",&n,&a);
        a2[n]=a;
        max2=max(max2,n);
    }
    int k=max(max1,max2);
    int num=0;
    for(int i=0;i<=k;i++){
        if(a1[i]==0&&a2[i]==0)continue;
        ans[i]=a1[i]+a2[i];
        if(ans[i])num++;
    }
    printf("%d",num);
    for(int i=k;i>=0;i--){
        if(ans[i]){
            printf(" %d %.1f",i,ans[i]);
        }
    }
    printf("\n");
}

猜你喜欢

转载自blog.csdn.net/m0_37579232/article/details/83039082