結果
| 問題 | No.40 多項式の割り算 | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2024-01-01 20:46:29 | 
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 4 ms / 5,000 ms | 
| コード長 | 939 bytes | 
| コンパイル時間 | 5,357 ms | 
| コンパイル使用メモリ | 309,276 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-09-27 17:29:19 | 
| 合計ジャッジ時間 | 6,464 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 32 | 
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
#define rep(i,m,n,k) for (int i = (int)(m); i < (int)(n); i += (int)(k))
#define rrep(i,m,n,k) for (int i = (int)(m); i > (int)(n); i += (int)(k))
#define ll long long
#define list(T,A,N) vector<T> A(N);for(int i=0;i<(int)(N);i++){cin >> A[i];}
int main(){
    
    ll D;
    cin >> D;
    list(ll,A,D+1);
    if (D==0){
        cout << 0 << endl;
        cout << A[0] << endl;
        return 0;
    }
    ll m,q,a;
    rrep(i,D,2,-1){
        m = i/3;
        q = i%3;
        a = A[i];
        A[m+q] += a;
        A[i] = 0;
    }
    if (A[2]!=0){
        cout << 2 << endl;
        cout << A[0] << ' ' << A[1] << ' ' << A[2] << endl;
        return 0;
    }
    if (A[1]!=0){
        cout << 1 << endl;
        cout << A[0] << ' ' << A[1] << endl;
        return 0;
    }
    cout << 0 << endl;
    cout << A[0]  << endl;
    return 0;
}
            
            
            
        