2015 HUAS Summer Training#2~C

Description

某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。

Input

本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。

Output

共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。

Sample Input

2 20 40

Sample Output

1 7 19 1 19 37

解题思路:此题要注意的是,即使士兵的人数少于3,也要进行报数,不然题目不能提交。注意每循环一次要记得将统计的数清零。

程序代码:

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <queue>
using namespace std;
int a[5005];
int main()
{
 int n,i;
 scanf("%d",&n);
 while(n--)
 {
  int m;
  scanf("%d",&m);
  for(i=1;i<=m;i++)
   a[i]=i;
  int t=m;
  while(t>3)
  {
    int count=0;
    for(i=1;i<=m;i++)
    {
     if(a[i])
     count++;
     if(count==2)
     {
      a[i]=0;
      count=0;
      t--;
     }
    
    } if(t<=3)
     break;
    count=0;
    for(i=1;i<=m;i++)
    { 
     if(a[i])
     count++;
     if(count==3)
     {
      a[i]=0;
      count=0;
      t--;
     }
   
    }if(t<=3)
     break;
    
   
  } 
   //printf("1");
   for(i=1;i<=m;i++)
   {
    if(a[i]!=0)
    {
     if(i==1)
      printf("%d",a[i]);
     else
     printf(" %d",a[i]);
    }
   
  } 
  cout<<endl;
 } 
 return 0;
}

时间: 2024-10-27 02:08:46

2015 HUAS Summer Training#2~C的相关文章

2015 HUAS Summer Training#2 F

题目: Description A robot has to patrol around a rectangular area which is in a form of mxn grid (m rows and n columns). The rows are labeled from 1 to m. The columns are labeled from 1 to n. A cell (i, j) denotes the cell in row i and column j in the

2015 HUAS Summer Training#2 B

题目: Description Two bored soldiers are playing card war. Their card deck consists of exactly n cards, numbered from 1 to n, all values are different. They divide cards between them in some manner, it's possible that they have different number of card

2015 HUAS Summer Training#2 G

题目: Description Due to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each square contains either water ('W') or dry land ('.'). Far

2015 HUAS Summer Training#1 B

题目: A Ducci sequence is a sequence of n-tuples of integers. Given an n-tuple of integers (a1, a2, ... , an), the next n-tuple in the sequence is formed by taking the absolute differences of neighboring integers: ( a1, a2, ... , an)  (| a1 - a2|,| a2 

2015 HUAS Summer Training#2 D

题目: Description Little Valentine liked playing with binary trees very much. Her favorite game was constructing randomly looking binary trees with capital letters in the nodes. This is an example of one of her creations: D / / B E / \ / \ \ A C G / /

2015 HUAS Summer Training#2 A

题目: You are given a string consisting of parentheses () and []. A string of this type is said to be correct: (a) if it is the empty string (b) if A and B are correct, AB is correct, (c) if A is correct, (A ) and [A ] is correct. Write a program that

2015 HUAS Summer Training#1~D

10763 Foreign Exchange Your non-profit organization (iCORE - international Confederation of Revolver Enthusiasts) coordinates a very successful foreign student exchange program. Over the last few years, demand has sky-rocketed and now you need assist

2015 UESTC Winter Training #8【The 2011 Rocky Mountain Regional Contest】

2015 UESTC Winter Training #8 The 2011 Rocky Mountain Regional Contest Regionals 2011 >> North America - Rocky Mountain 开始时貌似是UVAlive挂了,无论交什么都WA,后来转战HDU 这次水题比较多,其中B题据说有更加高级的方法. G题WA了两发,才发现竟然没有输出Case!!! 未完成:D F H I J A - Iterated Difference 水题,模拟迭代即可

2015 UESTC Winter Training #6【Regionals 2010 &gt;&gt; North America - Rocky Mountain】

2015 UESTC Winter Training #6 Regionals 2010 >> North America - Rocky Mountain A - Parenthesis 给一个长度不多于1000的表达式,只包含小写字母,加法运算,省略乘号的乘法运算和括号,输出去掉多余括号的表达式 括号匹配可以使用栈操作,只有两种情况可以去掉这一对括号: 左括号的左边是左边界.加法符号.左括号,并且右括号右边是有右边界.加法符号.右括号 如果括号内没有加法运算(括号内的括号里,也就是下一级括