View Code of Problem 80

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <cmath>
#include <algorithm>
using namespace std;
#pragma warning(disable:4996)


struct Student {
		int id;
		int live;
};

int main() {
	Student stu[1000] = { 0 };
	int n;
	
	while (1) {
		scanf("%d", &n);
		if (n == 0)
			break;
		for (int i = 1; i <= n; i++) {
			stu[i].id = i;
			stu[i].live = 1;
		}
		int count = 1;
		int cou = 0;
		for (int i = 1;; i++) {
			if (i > n) {
				i = i - n;
			}
			if (stu[i].live != 0) {
				if (count % 3 == 0) {
					stu[i].live = 0;
					cou++;
					if (cou == n) {
						printf("%d\n", i);
						break;
					}
				}
				count++;
			}


		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 80