洛谷P 1887

2836 ワード

タイトル
原題アドレスのテーマの説明はM個とNの正の整数を見つけてください.彼らの積はできるだけ大きくしなければなりません.
ディクショナリシーケンスの最小化のシナリオを出力します.
入出力フォーマット入力フォーマット:1行、2つの正の整数N,M
出力フォーマット:M個とN個で、できるだけ大きな正の整数を乗算します.
入出力サンプル入力サンプル1:6 3出力サンプル1:2 2 2説明100%のデータに対して、1le Nle 10^{9}、1le Mle 10^{6}1≦N≦10 9、1≦M≦10 6
問題解
去年の省大会のテーマにまた打撃を受けた石楽志は、弱智のテーマを作って自信を探しに走ってきた.の本当はやりやすいと思っていたのに、何度もWAして、長さが足りないのかと思って、変数を全部long longかWAに変えて、データを探してやっと最後の結果だけを加えるべきではなく、すべての結果に1つずつ(後ろから)加えればいいことに気づいた.もともと何行でできることがこんなに長く書かれていました...心が痛い...
コード#コード#
#include 
using namespace std;
long long m = -1, n = -1;
long long result[1000000];
int main(int argc, const char * argv[]) {
    cin >> n >> m;
    for(int count = 0; count < m; count++)
        result[count] = n/m;
    long long sum = 0;
    for(long long num:result)
        sum += num;
    for(long long count = m-1; count >= 0; count--){
        if(sum == n)
            break;
        result[count]++;
        sum++;
    }
    cout << result[0];
    for(int count = 1; count < m; count++)
        cout << " " << result[count];
    return 0;
}