A group of survivors has arrived by helicopter to an isolated island. The island is made up of a long

narrow strip of villages. The infected survivors arrived in the village to the far east and accidentally

infected the native population. The islanders are now attempting to escape the zombies that have

appeared on the east coast.

You are given N cases with 20 non-negative integers that represent the number of islanders at a

given village. The villages are represented from west to east (left to right, respectively), with the

zombies moving in from the east. The islanders have peculiar customs for traveling and will only move

between villages in pairs. Curiously, for every pair that travels between two villages, only one of them

ever survives the trip. As the zombies move west, islanders will travel to the village immediately west

of their current village as long as there are at least two islanders there. If there are an odd number

people in a village then one stays in the village and the rest move to the next village in pairs. Once

the islanders reach the village on the west coast, they will stop traveling.

Determine how many islanders remain at each village and the number that make it safely to the

village on the west coast (far left).

Input

The first line of data represents the number of data sets you will read in, N (1 ≤ N ≤ 50).

There will then be N lines of twenty 20 non-negative integers each. Each integer (≤ 1000) represents

the number of islanders who reside in a village. The leftmost integer represents the village on the west

coast, and the rightmost integer represents the village on the east coast.

Output

Your output will be N lines of twenty 20 non-negative integers. The left most number will represent

the number of islanders that reached the west. Each number to the right will represent the number of

people that stayed behind in each village.

Sample Input

1

0 0 0 0 77 0 0 99 0 0 0 40 0 0 0 17 0 1 13 10

Sample Output

5 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 0

模拟的水题。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<limits.h>
typedef long long LL;
using namespace std;
int num[25];
int main()
{
int t;
cin>>t;
while(t--)
{
for(int i=1;i<=20;i++)
scanf("%d",&num[i]);
int sum=0,temp;
for(int i=20;i>=1;i--)
{
temp=num[i]+sum;
sum=temp/2;
if(temp%2)
num[i]=1;
else
num[i]=0;
}
cout<<temp;
for(int i=2;i<=20;i++)
cout<<" "<<num[i];
cout<<endl;
}
return 0;
}

UVA 6480 Zombie Invasion(模拟退火)的更多相关文章

  1. UVa 12325 Zombie's Treasure Chest【暴力】

    题意:和上次的cf的ZeptoLab的C一样,是紫书的例题7-11 不过在uva上交的时候,用%I64d交的话是wa,直接cout就好了 #include<iostream> #inclu ...

  2. UVa 12325 - Zombie's Treasure Chest-[分类枚举]

    12325 Zombie’s Treasure Chest Some brave warriors come to a lost village. They are very lucky and fi ...

  3. uva 12325 Zombie's Treasure Chest

    https://vjudge.net/problem/UVA-12325 题意: 一个箱子,体积为N 两种宝物,体积为S1.S2,价值为V1.V2,数量无限 最多装多少价值的宝物 数据范围:2^32 ...

  4. UVA 12325 Zombie'sTreasureChest 宝箱 (分类枚举)

    看上去非常像背包的问题,但是体积太大了. 线性规划的知识,枚举附近点就行了,优先选性价比高的, 宝物有两种体积为S0,价值V0,体积S1,价值V1. 枚举分以下几种: 1:枚举拿宝物1的数量,然后尽量 ...

  5. Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)

    题意: 你有一个体积为N的箱子和两种数量无限的宝物.宝物1的体积为S1,价值为V1:宝物2的体积为S2,价值为V2.输入均为32位带符号的整数.你的任务是最多能装多少价值的宝物? 分析: 分类枚举, ...

  6. UVA - 12325 Zombie's Treasure Chest (分类搜索)

    题目: 有一个体积为N的箱子和两种数量无限的宝物.宝物1的体积为S1,价值为V1:宝物2的体积为S2,价值为V2.输入均为32位带符号整数.计算最多能装多大价值的宝物,每种宝物都必须拿非负整数个. 思 ...

  7. Instruments Tutorial for iOS: How To Debug Memory Leaks【转】

    If you're new here, you may want to subscribe to my RSS feed or follow me on Twitter. Thanks for vis ...

  8. Instruments Tutorial for iOS: How To Debug Memory Leaks

    http://www.raywenderlich.com/2696/instruments-tutorial-for-ios-how-to-debug-memory-leaks Update 4/12 ...

  9. uva 10228 - Star not a Tree?(模拟退火)

    题目链接:uva 10228 - Star not a Tree? 题目大意:给定若干个点,求费马点(距离全部点的距离和最小的点) 解题思路:模拟退火算法,每次向周围尝试性的移动步长,假设发现更长处, ...

随机推荐

  1. Android 应用内HttpClient 与 WebView 共享 Cookie

    DefaultHttpClient httpclient=....; String toUrl="https://cap.cityu.edu.hk/studentlan/details.as ...

  2. td

    http://jameswxx.iteye.com/blog/1041173 http://crane-ding.iteye.com/blog/968862 http://www.ibm.com/de ...

  3. 云计算与虚拟化以及IaaS, PaaS和SaaS

    概述: 包括:服务器虚拟化.桌面虚拟化.应用虚拟化: 云计算只是用到了虚拟化的技术: soa dubbo结构,阿里巴巴的开源架构: netstat -ntlp; 云服务”现在已经快成了一个家喻户晓的词 ...

  4. ListView优化问题

    可以参考:http://blog.csdn.net/bill_ming/article/details/8817172和http://blog.csdn.net/xiangjai/article/de ...

  5. 04-Foundation-NSSet、NSDictionary、block

    目录: 一.NSSet集合 二.NSDictionary字典 三.block代码块 回到顶部 一.NSSet集合 1 NSSet是一个无序的,管理对个对象的集合类,最大特点是集合中不允许出现重复对象, ...

  6. oracle 表复制

    1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: ; 或者 create tab ...

  7. SQL2005、2008、2000 清空删除日志

    SQL2005清空删除日志: 代码如下: Backup Log DNName with no_log  '这里的DNName是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了. go d ...

  8. JAVA之等号、传类对象参数与c++的区别

    在JAVA中用等号对类对象进行赋值,实际上操作的是对象的地址. eg: package MyText; class ClassA { int value; public void seta(int v ...

  9. 向架构师进军---&gt;系统架构设计基础知识

    假设你对项目管理.系统架构有兴趣,请加微信订阅号“softjg”,增加这个PM.架构师的大家庭 在解说系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师和架构设计等相关的概 ...

  10. Android核心基础(十一)

    1.Android的状态栏通知(Notification) 通知用于在状态栏显示消息,消息到来时以图标方式表示,如下: //获取通知管理器 NotificationManager mNotificat ...