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