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

本地求出结果后打表水之

Posted by yygy at 2013-03-13 17:46:44 on Problem 1012
In Reply To:过不了,求优化 Posted by:sukiida at 2013-03-13 16:07:19
> #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:
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