http://acm.pku.edu.cn/JudgeOnline/problem?id=1234
Код:
#include <iostream> using namespace std; const int SIZE = 100; int main(void) { bool tossedTo[SIZE]; char direction[SIZE]; int curr, last; int n, numTossed, tosses; cin >> n; while (n != 0) { last = 0; cin >> curr; curr--; for(int i=0; i<n; i++) { cin >> direction[i]; tossedTo[i] = false; } numTossed = 0; tosses = 0; while (numTossed < n) { tosses++; if (!tossedTo[curr]) { tossedTo[curr] = true; numTossed++; } int temp = last; last = curr; if (direction[curr] == 'L') { direction[curr] = 'R'; curr = (temp+n-1) % n; if (curr == last) curr = (curr+n-1)%n; } else { direction[curr] = 'L'; curr = (temp+1) % n; if (curr == last) curr = (curr+1)%n; } //cout << "curr = " << curr+1 << ' '; //for(i=0;i<n;i++) cout << direction[i]; //cout << endl; } cout << "Classmate " << last+1 << " got the ball last after " << tosses << " tosses." << endl; cin >> n; } }