From 2f94b6e30cf1c9989592e9bf9efb5ebdb1e4e4f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9s=20Mej=C3=ADa?= Date: Tue, 4 Oct 2011 09:05:33 -0500 Subject: [PATCH] Money! --- 608 - Counterfeit Dollar/608.cpp | 59 +++++++++++++++++++++++++++++++++++++++ 608 - Counterfeit Dollar/a.out | Bin 0 -> 14520 bytes 608 - Counterfeit Dollar/in.txt | 12 ++++++++ 3 files changed, 71 insertions(+) create mode 100644 608 - Counterfeit Dollar/608.cpp create mode 100755 608 - Counterfeit Dollar/a.out create mode 100644 608 - Counterfeit Dollar/in.txt diff --git a/608 - Counterfeit Dollar/608.cpp b/608 - Counterfeit Dollar/608.cpp new file mode 100644 index 0000000..30fcaf3 --- /dev/null +++ b/608 - Counterfeit Dollar/608.cpp @@ -0,0 +1,59 @@ +using namespace std; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define foreach(x, v) for (typeof (v).begin() x=(v).begin(); x !=(v).end(); ++x) +#define For(i, a, b) for (int i=(a); i<(b); ++i) +#define D(x) cout << #x " is " << x << endl + +string A[3], B[3], C[3]; + +int value(const string &s) { + return s == "up" ? +1 : s == "down" ? -1 : 0; +} + +bool works(char letter, int v) { + for (int i = 0; i < 3; ++i) { + int sa = 0, sb = 0; + for (int k = 0; k < A[i].size(); ++k) sa += v * (A[i][k] == letter); + for (int k = 0; k < B[i].size(); ++k) sb += v * (B[i][k] == letter); + if (sa - sb != value(C[i])) return false; + } + return true; +} + +int main(){ + int cases; cin >> cases; + while (cases--) { + for (int i = 0; i < 3; ++i) cin >> A[i] >> B[i] >> C[i]; + for (char c = 'A'; c <= 'Z'; ++c) { + if (works(c, +1)) { + printf("%c is the counterfeit coin and it is heavy.\n", c); + break; + } + if (works(c, -1)) { + printf("%c is the counterfeit coin and it is light.\n", c); + break; + } + } + } + return 0; +} \ No newline at end of file diff --git a/608 - Counterfeit Dollar/a.out b/608 - Counterfeit Dollar/a.out new file mode 100755 index 0000000000000000000000000000000000000000..e738d573b3829ef7406637a5d5cf711af92d849c GIT binary patch literal 14520 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 literal 0 HcwPel00001 diff --git a/608 - Counterfeit Dollar/in.txt b/608 - Counterfeit Dollar/in.txt new file mode 100644 index 0000000..6ee9b99 --- /dev/null +++ b/608 - Counterfeit Dollar/in.txt @@ -0,0 +1,12 @@ +3 +ABCD EFGH even +ABCI EFJK up +ABIJ EFGH even + +ABC EDF up +AEC BDF up +ABE CDF up + +ABC EDF down +EBC ADF down +ABE CDF down \ No newline at end of file -- 2.11.4.GIT