Skip to content

Instantly share code, notes, and snippets.

@csgregorian
Last active August 29, 2015 14:05
Show Gist options
  • Save csgregorian/6d9ace6e271d7f09fdb5 to your computer and use it in GitHub Desktop.
Save csgregorian/6d9ace6e271d7f09fdb5 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int distance;
cin >> distance;
int strokes[5300];
memset(strokes, 0x3f, sizeof(strokes));
strokes[0] = 0;
int num_clubs;
cin >> num_clubs;
int clubs[num_clubs];
for (int i = 0; i < num_clubs; ++i)
{
cin >> clubs[i];
}
for (int dist = 0; dist < distance; ++dist)
{
for (int club = 0; club < num_clubs; club++) {
if (dist+clubs[club] <= distance)
strokes[dist + clubs[club]] = min(strokes[dist + clubs[club]], strokes[dist] + 1);
}
}
if (strokes[distance] < distance) {
cout << "Roberta wins in " << strokes[distance] << " strokes." << endl;
} else {
cout << "Roberta acknowledges defeat." << endl;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment