#include using namespace std; #define AIN(a,n,b) assert(a<=n && n<=b) #define i64 long long #define MAX 1000000 #define pb push_back #define all(a) a.begin(),a.end() #define M 2 typedef pair pii; vector child[505]; int w[505],ans[100005],cnt,n; i64 dp[100005][5],sub_sum[505],sum; i64 MOD[5] = {99194853094755497LL,59604644783353249LL,2147483647LL, 489133282872437279LL, 3093215881333057LL}; void add_item(int w){ int i,j; for(i = sum;i>=w;i--){ for(j = 0;jMOD[j]) dp[i][j]-=MOD[j]; //dp[i][j]%=MOD[j]; } } } void remove_item(int w){ int i,j; for(i = w;i<=sum;i++){ for(j = 0;j