Advertisement
tuki2501

fcb029_dmath.cpp

Nov 9th, 2021
808
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5.  
  6. void solve() {
  7.   int a, b, c, n;
  8.   cin >> a >> b >> c >> n;
  9.   a %= c;
  10.   b %= c;
  11.   vector<int> v(1, 0);
  12.   for (int i = 0; i < n; i++) {
  13.     int x, y;
  14.     cin >> x >> y;
  15.     x %= c;
  16.     for (int j = 0; j < y; j++) {
  17.       v.push_back(x);
  18.     }
  19.   }
  20.   n = v.size() - 1;
  21.   vector<set<array<int,2>>> dp(n + 1);
  22.   dp[0].insert({a, b});
  23.   for (int i = 1; i <= n; i++) {
  24.     for (auto &j : dp[i - 1]) {
  25.       dp[i].insert(j);
  26.       dp[i].insert({((ll)j[0] * v[i]) % c, j[1]});
  27.       dp[i].insert({j[0], ((ll)j[1] * v[i]) % c});
  28.     }
  29.   }
  30.   for (auto &i : dp[n]) {
  31.     if ((i[0] + i[1]) % c == 0) {
  32.       cout << "YES" << '\n';
  33.       return;
  34.     }
  35.   }
  36.   cout << "NO" << '\n';
  37. }
  38.  
  39. int main() {
  40.   cin.tie(0)->sync_with_stdio(0);
  41.   int T; cin >> T;
  42.   while (T--) solve();
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement