LA 3882 And Then There Was One[约瑟夫问题的变形]

And Then There Was One

 UVALive - 3882

 

Sample Input  

 

8 5 3
100 9999 98
10000 10000 10000
0 0 0

 

Sample Output 

1
93
2019
//设f[i]为(原约瑟夫问题)第i次要删除的标号 
#include<cstdio>
using namespace std;
const int N=1e4+5;
int n,m,k,f[N];
int main(){
    while(scanf("%d%d%d",&n,&k,&m)==3&&n){
        //f[1]=0;
        //for(int i=2;i<=n;i++) f[i]=(f[i-1]+k)%i;
        //int ans=(m-k+f[n]+1)%n;
        int s=0;
        for(int i=2;i<=n;i++) s=(s+k)%i;
        int ans=(m-k+s+1)%n;//这3句话来源于上面 
        if(ans<=0) ans+=n;
        printf("%d\n",ans);
    }
    return 0;
}

 

posted @ 2017-02-12 15:59  神犇(shenben)  阅读(256)  评论(0编辑  收藏  举报