結果
問題 |
No.1081 和の和
|
ユーザー |
|
提出日時 | 2020-06-27 11:20:13 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 3,330 bytes |
コンパイル時間 | 1,946 ms |
コンパイル使用メモリ | 197,568 KB |
最終ジャッジ日時 | 2025-01-11 12:42:04 |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 8 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define rrep(i,n) for (int i = (int)(n)-1; i>=0; --i) #define For(i,a,b) for(auto i=(a);i<=(b);++i) #define rFor(i,a,b) for(auto i=(b);i>=(a);--i) #define call(var) cerr<<#var<<"="<<var<<"\n"; #define dup(x,y) (((x)+(y)-1)/(y)) #define all(x) (x).begin(),(x).end() using ll=long long; using vi = vector<int>; using vl = vector<ll>; using vb = vector<bool>; using Graph = vector<vi>; using P = pair<int,int>; const int MOD=(int)1e9+7; const int INF=(int)1e9; const ll LINF=(ll)1e18; const double pi = acos(-1); template<class t,class u> inline bool chmax(t&a,u b){if(a<b){a=b;return true;}return false;} template<class t,class u> inline bool chmin(t&a,u b){if(b<a){a=b;return true;}return false;} template<class T> istream& operator>>(istream& is, vector<T>& a){rep(i,a.size()) is >> a[i]; return is;} template<class T> ostream& operator<<(ostream& os, vector<T>& a){rep(i,a.size()) os << a[i] << " "; return os;} template<class T, class U> istream& operator>>(istream& is, pair<T,U>& p){is >> p.first >> p.second; return is;} template<class T, class U> ostream& operator<<(ostream& os, const pair<T,U>& p){os << "("<< p.first << "," << p.second << ")"; return os;} template<class T, class U> ostream& operator<<(ostream& os, const map<T,U>& mp){for(auto& t : mp) os << t.first << " " << t.second << "\n"; return os;} struct mint { long long x; mint(long long x=0):x((x%MOD+MOD)%MOD){} mint operator-() const { return mint(-x);} mint& operator+=(const mint a) { if ((x += a.x) >= MOD) x -= MOD; return *this; } mint& operator-=(const mint a) { if ((x += MOD-a.x) >= MOD) x -= MOD; return *this; } mint& operator*=(const mint a) { (x *= a.x) %= MOD; return *this; } mint operator+(const mint a) const { mint res(*this); return res+=a; } mint operator-(const mint a) const { mint res(*this); return res-=a; } mint operator*(const mint a) const { mint res(*this); return res*=a; } mint pow(long long t) const { if (!t) return 1; mint a = pow(t>>1); a *= a; if (t&1) a *= *this; return a; } // for prime MOD mint inv() const { return pow(MOD-2); } mint& operator/=(const mint a) { return (*this) *= a.inv(); } mint operator/(const mint a) const { mint res(*this); return res/=a; } friend ostream& operator<<(ostream& os, const mint& oj); }; istream& operator>>(istream& is, mint& a){return is >> a.x;} ostream& operator<<(ostream& os, const mint& a){return os << a.x;} mint factorial(int n){ mint res = 1; for(int i=1;i<=n;++i){ res *= i; } return res; } mint nCr(int n,int r){ mint numerator = 1; if(r > n - r) r = n - r; for(int i=n;i>n-r;--i){ numerator *= i; } mint denominator = 1; for(int i=1;i<=r;++i){ denominator *= i; } return numerator/denominator; } int main(){ int n;cin >> n; vector<mint> a(n); cin >> a; for(int i=0;i<n-1;++i){ for(int j=0;j<a.size()-1;++j){ a[j] = a[j] + a[j+1]; } a.pop_back(); } cout << a << "\n"; }