Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <algorithm>using namespace std;#define SIZE 105#define MAX 10005typedef long long ll;int Q, N, M, K, T;int A[SIZE], B[SIZE];ll f[MAX], ans;const ll INF = (ll)1e16;void solve(){for (int i = 0; i < N; ++i){for (int j = 0; j <= K; ++j)f[j] = INF;f[0] = 0;for (int j = 0; j < M; ++j)for (int p = 0; p < K; ++p)f[min(K, p + B[j])] = min(f[min(K, p + B[j])], f[p] + A[j]);if (f[K] >= INF){cout << "No Answer" << endl;return;}ans += f[K];for (int j = 0; j < M; ++j)B[j] /= T;}