Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.48 KB | None | 0 0
  1. /*
  2.                                                                    .odNMMmy:
  3.                                                                    /MMMMMMMMMy
  4.                                                                   `NMMMMMMMMMM:
  5.                                                                    mMMMMMMMMMM-
  6.                                 `::-                               -dMMMMMMMN/
  7.                     `+sys/`    sNMMMm/   /ydho`                      :oyhhs/`
  8.                    :NMMMMMm-  -MMMMMMm  :MMMMMy  .+o/`
  9.                    hMMMMMMMs   sNMMMm:  `dMMMN/ .NMMMm
  10.                    -mMMMMMd.    `-:-`     .:-`  `hMMNs -syo`          .odNNmy/        `.
  11.                     `:oso:`                       `.`  mMMM+         -NMMMMMMMy    :yNNNNh/
  12.                        `--.      :ydmh/    `:/:`       -os+`/s+`     sMMMMMMMMM`  +MMMMMMMMs
  13.                      .hNNNNd/   /MMMMMM+  :mMMMm-   ``     -MMM+     -NMMMMMMMy   hMMMMMMMMN
  14.             ``       mMMMMMMM-  :MMMMMM/  oMMMMM/ .hNNd:    -/:`      .odmmdy/`   :NMMMMMMN+
  15.          -sdmmmh/    dMMMMMMN.   -shhs:   `/yhy/  /MMMMs `--`           ````       .ohddhs-
  16.         :NMMMMMMMy   `odmNmy-                      /ss+``dNNm.         .-.`           ``
  17.         yMMMMMMMMM`    ``.`                             `hNNh.       /dNNNms`      `-:-`
  18.         :NMMMMMMMs          .--.      /yddy:    .::-`    `..`       /MMMMMMMh    `smNNNms`
  19.          .ohdmdy:         -hmNNmh:   +MMMMMM/  /mMMNd.   ``         :MMMMMMMy    oMMMMMMMs   `-::.
  20.             ```  ``      `NMMMMMMN.  +MMMMMN:  yMMMMM- -hmmh-        /hmNNdo`    +MMMMMMM+  +mNMNNh-
  21.               -sdmmdy:   `mMMMMMMN`   :yhhs-   `+hhy:  oMMMMo          ...`       /hmmmh/  :MMMMMMMm
  22.              /NMMMMMMNo   .sdmmmy-                     `+yy/`     -+ss+.            `.`    .NMMMMMMh
  23.              dMMMMMMMMN     `..`                                 /NMMMMm-      :shyo.       -sdmmh+`
  24.      `       /NMMMMMMMo                 .-.                      oMMMMMM/     sMMMMMm.        ```
  25.  `/ydddho-    -sdmmdy:                `hNNms                     `odmmd+      yMMMMMN-   -shhs:
  26. -mMMMMMMMNo     ````           `--.   `mMMMm                 `-//- `..        `odddy:   :NMMMMN/
  27. mMMMMMMMMMM:            .//.   yNMN/   .+o/.                `dMMMNo       ./o+-  ``     /MMMMMM+
  28. mMMMMMMMMMM:            dMMd   ommd:     -+o/.              .NMMMMy      -mMMMN+         /hddh/
  29. :mMMMMMMMNs             -oo-    .:.     +NMMMm-         .//- -shy+`      -NMMMMo    `/oo:`  `
  30.  `+ydmmdo-            `ohy/    smmdo    oMMMMN:        /NMMN+       `:++- -oso:    `dMMMMh
  31.      ``               /MMMm   `NMMMN`    :oso-         :mMMN/       oMMMM/         `mMMMMh
  32.                        :o+-    -oyo-         -+oo:`     .::.   -oo: /mNNm-     -+o/``/ss/`
  33.                       `:oo:      .:/-`      oMMMMMh`          `NMMM- `--`     :MMMMy
  34.                       oMMMM/    :mMMMm-     mMMMMMM.           +hho`     .+s+`.dNNm+
  35.                       :mNNd-    oMMMMM/     -hmNNd/                 -o+. hMMMo  .-`
  36.                        `..``    `/yhy/        `.`  `:oss+.          mMMh -shs.
  37.                         :ydds.       .://.        `hMMMMMN+         -+/.
  38.                        .MMMMMm      +NMMMMy       /MMMMMMMm
  39.                         yNNNN+      mMMMMMM-      `dMMMMMN+    ````
  40.                          .--` ``    :dNNNmo         :oss+.   -ydNNmh/
  41.                             /hmmh+`   .--`  ./++:`          /MMMMMMMMy
  42.                            :MMMMMMs        yMMMMMm/         hMMMMMMMMM      `-::-`
  43.                            -NMMMMM+       /MMMMMMMN         :NMMMMMMMo    -yNMMMMMh:
  44.                             .oyys-   ``   `mMMMMMMs          .ohmmds-    -NMMMMMMMMM+
  45.                                   `+dNNmy- `+yhhs:   `ohmmds-            sMMMMMMMMMMd
  46.                                   hMMMMMMM-         -NMMMMMMMs           :MMMMMMMMMMo
  47.                                   dMMMMMMM:         yMMMMMMMMM`           :dMMMMMMm+
  48.                                   .hMMMMm+          :MMMMMMMMy              .:++/.
  49.                                     `--.             -ymMMNh/
  50. */
  51. #define END cout << "\nEnding\n"; exit(0);
  52. #include <bits/stdc++.h>
  53. using namespace std;
  54. typedef long long ll;
  55. typedef long double ld;
  56. typedef pair<int, int> pii;
  57.  
  58. const int N = 4e1;
  59. map<pair<int, int>, int> Q;
  60. int n, a, b, A[N], B[N];
  61.  
  62. void dfs(int act = 0, int actA = 0, int actB = 0) {
  63.     if (act == n / 2) {
  64.         int cnt = min((a? actA / a : 0), actB / b);
  65.         Q[{ actA - cnt * a, actB - cnt * b }]++;
  66.         return;
  67.     }
  68.     dfs(act + 1, actA, actB);
  69.     dfs(act + 1, actA + A[act], actB + B[act]);
  70. }
  71.  
  72. ll res = 0;
  73.  
  74. void get(int act = n / 2, int actA = 0, int actB = 0) {
  75.     if (act == n) {
  76.         int cnt = min((a? actA / a : 0), actB / b);
  77.         actA -= cnt * a;
  78.         actB -= cnt * b;
  79.         if (actA >= a || actB >= b) {
  80.             return;
  81.         }
  82.         res += Q[{ (a? (a - actA) % a : 0), (b - actB) % b }];
  83.         return;
  84.     }
  85.     get(act + 1, actA, actB);
  86.     get(act + 1, A[act] + actA, B[act] + actB);
  87. }
  88.  
  89. int main() {
  90.    
  91.     ios_base::sync_with_stdio(0);
  92.     cin.tie(0);
  93.     cout.tie(0);
  94. #ifdef _DEBUG
  95.     freopen("input.txt", "r", stdin);
  96.     freopen("output.txt", "w", stdout);
  97. #endif
  98.  
  99.     cin >> n >> a >> b;
  100.     int cnt = 1;
  101.     for (int i = 0; i < n; ++i) {
  102.         cin >> A[i] >> B[i];
  103.         cnt <<= A[i] == 0;
  104.     }
  105.     if (a == 0) {
  106.         cout << cnt - 1 << "\n";
  107.         return 0;
  108.     }
  109.     dfs();
  110.     get();
  111.     cout << res - 1 << "\n";
  112.  
  113.     return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement