Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define mp make_pair#define all(x) (x).begin(),(x).end()#define SZ(x) ((int)(x).size())#define fi first#define se secondtypedef vector<int> VI;typedef long long ll;typedef pair<int,int> PII;const ll mod=1000000007;ll powmod(ll a,ll b) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}// headconst int N=110;int dp[N][N][N],ret[N][N],pd[N][N][N];int _,a,b;inline void upd(int &a,ll b) { a=(a+b)%mod;}int main() {rep(i,0,101) dp[i][0][0]=1;rep(i,0,101) {rep(a,0,101) rep(b,0,101-a) rep(c,0,101-a-b) {pd[a][b][c]=dp[a][b][c],dp[a][b][c]=0;upd(ret[i][a+b+c],pd[a][b][c]);}rep(a,0,101) rep(b,0,101-a) rep(c,0,101-a-b) if (pd[a][b][c]) {ll ret=pd[a][b][c];upd(dp[a][b][c],ret);