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;
	}
}