// UVa 151 - Power Crisis #include <iostream> #include <vector> using namespace std; int josephus(int n, int m) { vector<int> v; for (int i = 1; i <= n; i++) v.push_back(i); int now = 0; while (v.size() > 1) { if (v[now] == 13) return 0; v.erase(v.begin() + now); now += m - 1; if (now >= v.size()) now = now % v.size(); } return v[0]; } int main() { int n; cin >> n; for (; n; cin >> n) { if (n == 13) cout << 1 << endl; else { int sol = 0; for (int i = 2; true; i++) { if (josephus(n, i) == 13) { sol = i; break; } } cout << sol << endl; } } return 0; }
No comments:
Post a Comment