Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

H-O-H

Posted by KatrineYang at 2016-08-30 22:26:16 on Problem 1234
#include <iostream>
#include <stdio.h>
using namespace std;

int main() {
	int N;
	while(scanf("%d", &N) > 0){
		if(N == 0) break;
		//printf("%d\n", N);
		int k;
		scanf("%d\n", &k);
		k--;
		bool lr[33];//0: l 1: r
		for(int i = 0; i < N; i++){
			char tmp;
			scanf("%c\n", &tmp);
			if(tmp == 'L') lr[i] = 0;
			else lr[i] = 1;
		}
		//for(int i = 0; i < N; i++) cout << lr[i] << " "; cout << endl;
		int no = N;
		bool get[33] = {0};
		int lastball = 0, cs = 0, curball = k;
		while(1){
			if(!get[curball]){
				no--;
				get[curball] = 1;
			}
			if(no == 0){
				printf("Classmate %d got the ball last after %d tosses.\n", curball+1, cs+1);
				break;
			}
			int nextball;
			if(lr[curball] == 0){
				nextball = (lastball+N-1)%N;
				if(nextball == curball){
					nextball = (nextball+N-1)%N;
				}
			}
			else{
				nextball = (lastball+1)%N;
				if(nextball == curball){
					nextball = (nextball+1)%N;
				}
			}
			lr[curball] = !lr[curball];
			lastball = curball;
			curball = nextball;
			cs++;
		}
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator