| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
过不了,求优化#include <stdio.h>
#include <string.h>
int main()
{
int k = 0;
while (1)
{
if (scanf("%d", &k) != 1)
{
return 0;
}
if (0 == k)
{
return 0;
}
int m = k + 1;//
while (1)
{
int i = 0;
int pos = 0;
for (; i < k; i++)
{
pos = (m + pos - 1) % (2 * k - i);//next person to be killed
if (pos < k)
{
break;
}
}
if (k == i)//if k bad guys were killed
{
printf("%d\n", m);
break;
}
else
{
++m;
if (m % (2 * k) == 0)//in this region a good guy will be killed at first
{
m += k;
}
}
}
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator