From de6843cd7e351c50464d3353fe54c281233b775a Mon Sep 17 00:00:00 2001 From: Konstantin Saveljev Date: Mon, 9 Jun 2014 11:48:09 +0300 Subject: [PATCH] 735 solved --- 735.cpp | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 735.cpp diff --git a/735.cpp b/735.cpp new file mode 100644 index 0000000..96cb90a --- /dev/null +++ b/735.cpp @@ -0,0 +1,72 @@ +#include +#include +#include +#include +using namespace std; + +#define pow2(i) (1< scores; + bool taken[61][61][61]; + + scores.insert(50); + + repi (i, 20) { + scores.insert(i); + scores.insert(i*2); + scores.insert(i*3); + } + + vector values(scores.begin(), scores.end()); + + while (cin >> n) { + if (n <= 0) { + cout << "END OF OUTPUT" << endl; + break; + } + + memset(taken, false, sizeof(taken)); + + int combinations = 0, permutations = 0; + + rep (i, values.size()) { + rep (j, values.size()) { + rep (k, values.size()) { + if (values[i] + values[j] + values[k] != n) continue; + + permutations++; + + if (!taken[values[i]][values[j]][values[k]]) { + taken[values[i]][values[j]][values[k]] = true; + taken[values[i]][values[k]][values[j]] = true; + taken[values[j]][values[i]][values[k]] = true; + taken[values[j]][values[k]][values[i]] = true; + taken[values[k]][values[i]][values[j]] = true; + taken[values[k]][values[j]][values[i]] = true; + combinations++; + } + } + } + } + + if (combinations == 0 && permutations == 0) { + cout << "THE SCORE OF " << n << " CANNOT BE MADE WITH THREE DARTS." << endl; + } else { + cout << "NUMBER OF COMBINATIONS THAT SCORES " << n << " IS " << combinations << "." << endl; + cout << "NUMBER OF PERMUTATIONS THAT SCORES " << n << " IS " << permutations << "." << endl; + } + cout << "**********************************************************************" << endl; + } + + return 0; +}