2527:Polynomial Remains

keyword

数式処理 C++

概要

多項式多項式で割ったときの余りを求める問題。次数は10000以下。
筆算でやるのと同じようにすればよい。書くだけの問題。

int ns[10010],ans[10010];

int main(){
    int n, k, i, pos, j;

    while(scanf("%d%d",&n,&k)){
        if(n==-1 && k==-1) break;
        REP(i,n+1)scanf("%d",ns+i);

        for(pos=n;pos >= k;pos--){
            ns[pos-k] -= ns[pos];
            ns[pos] = 0;
        }

        for(i=n;i>=0;i--)if(ns[i])break;
        if(i==-1)printf("0\n");
        else{
            for(j=0;j<=i;j++){
                printf("%d",ns[j]);
                if(j<i)printf(" ");
                else printf("\n");
            }
        }

    }

    return 0;
}