#include #include #include using namespace std; #define ll long long class BinaryIndexed { public: vector a; void init(vector& arr) { a.resize(arr.size()+1); a[0] = 0; a[1] = arr[0]; for (int i=1; i=1; i--) { ll prev = a[i-(i&-i)]; a[i] = a[i] - prev; } } ll get(int k) { k++; ll res = 0; while (k >= 1) { res += a[k]; k -= k & -k; } return res; } }; int main() { int n, m, q; scanf("%d %d %d", &n, &m, &q); vector> dp(n, vector(m)); for (int i=0; i cnts(n, 0); for (int i=0; i= sum); cnts[o_j-sum] += cnt; // printf("i: %d, o_j: %d, sum: %d, adding: %d\n", i, o_j, sum, cnt); sum += cnt; } } BinaryIndexed st; st.init(cnts); while (q--) { int t; scanf("%d", &t); printf("%d\n", st.get(min(t, n-1))); } }