結果
| 問題 | No.1281 Cigarette Distribution | 
| コンテスト | |
| ユーザー |  たたき@競プロ | 
| 提出日時 | 2023-09-08 16:30:29 | 
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 40 ms / 2,000 ms | 
| コード長 | 661 bytes | 
| コンパイル時間 | 5,477 ms | 
| コンパイル使用メモリ | 309,368 KB | 
| 実行使用メモリ | 5,376 KB | 
| 最終ジャッジ日時 | 2024-06-26 09:22:17 | 
| 合計ジャッジ時間 | 7,436 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 23 | 
ソースコード
#include<bits/stdc++.h>
using namespace std;
#include <atcoder/all>
using namespace atcoder;
using mint=modint1000000007;
using ll=long long;
using pp=pair<ll,ll>;
#define sr string 
#define vc vector
#define fi first
#define se second
#define rep(i,n) for(ll i=0;i<(ll)n;i++)
#define pb push_back
#define all(v) v.begin(),v.end()
#define pque priority_queue
#define bpc(a) __builtin_popcount(a)
int main(){
  int n,m;cin>>n>>m;
  for(int i=1;i<=m;i++){
    if(n+1<2*i)cout<<0<<"\n";
    else {
      int d=(n+1)/i,r=(n+1)%i; int xr=i-r;
      mint res=d-1; xr--;
      res*=mint(d).pow(xr);
      res*=mint(d+1).pow(r);
      cout<<res.val()<<"\n";
    }
  }
}
            
            
            
        