救济金发放The Dole QueueUVA 133

青旅半醒 2024-02-17 18:46 125阅读 0赞
  1. #include
  2. int main(){
  3. int a[25];
  4. int N,k,m;
  5. while(scanf(“%d%d%d”,&N,&k,&m)==3 && N){
  6. for(int i=N-1;i>=0;i—){ //倒序输入
  7. a[N-i-1]=i+1;
  8. }
  9. int leave=N;
  10. int k1=N-1; //逆序
  11. int m1=0; //顺序
  12. while(leave){ //当留下0人时退出循环
  13. for(int i=0;i<k;i++){
  14. if(a[k1=(N+k1)%N]==0)i—;
  15. k1—;
  16. }
  17. k1++;
  18. for(int i=0;i<m;i++){

  19. if(a[m1=(m1%N)]==0)i—;
  20. m1++;
  21. }
  22. m1—;
  23. if(m1!=k1){

  24. leave-=2;
  25. if(leave)
  26. printf(“%3d%3d,”,a[k1],a[m1]);
  27. else printf(“%3d%3d”,a[k1],a[m1]);
  28. a[k1]=0;a[m1]=0;
  29. }
  30. else {
  31. leave—;
  32. if(leave)
  33. printf(“%3d,”,a[k1]);
  34. else printf(“%3d”,a[k1]);
  35. a[k1]=a[m1]=0;
  36. }
  37. }
  38. printf(“\n”);
  39. }
  40. return 0;
  41. }

发表评论

表情:
评论列表 (有 0 条评论,125人围观)

还没有评论,来说两句吧...

相关阅读

    相关 发放奖金

    企业发放的奖金根据利润分段计算提成。当利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元,低于10万元的部分按10%提成,高于10万元的部分,可提成7.

    相关 133. 克隆图

    题目 给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。 图中的每个节点都包含它的值 val(int) 和其邻居的列表(list\[Node\])。

    相关 救济金发放The Dole Queue)

    n(n<20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开始顺时针数。每一轮中A数到k个就停下来,B数到m个就停下来(注意有可能两个官员停在同一个

    相关 133. 克隆图

    > 给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。 > > 图中的每个节点都包含它的值 val(int) 和其邻居的列表(list\[Node\])。

    相关 救济金发放

    前言 这个问题琢磨了挺长时间,发现里面有很多需要考虑和注意的 问题描述 n(n<20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开始