Cod sursa(job #143469)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 26 februarie 2008 16:11:35
Problema Order Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#include <math.h>

long n, i, p, copil, f[30010], j;

int main() {
	freopen("order.in", "r", stdin);
	freopen("order.out", "w", stdout);
	scanf("%ld", &n);
	for (i = 1; i <= n; ++i) {
		f[i] = 1;
	}
	p = 1;
	for (j = 1; j <= n; ++j) {
		copil = 0;
		
		i = j % (n - j + 1);
		if( i == 0)
			i = n - j +1;
		
		while (copil != i) {
			if (f[p] == 1 && p <= n) {
				++copil;
				if (copil != i) {
					++p;
				}
			}
			if (f[p] == 0) {
				++p;
			}
			if (p > n) {
				p = 1;
			}
		}
		f[p] = 0;
		if (p == n) {
			printf("1 ");
		} else {
			printf("%ld ", p + 1);
		}
	}
	return 0;
}