1503171912-ny-一道水题

一道水题

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描写叙述
今天LZQ在玩一种小游戏,可是这游戏数有一点点的大,他一个人玩的累。想多拉一些人进来帮帮他。你能写一个程序帮帮他吗?这个游戏是这种:有一行数字,假设我们把这行数字中的‘5’都看成空格,那么就得到一行用空格切割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。

你的任务是:对这些切割得到的整数,依从小到大的顺序排序输出,大家赶紧写个程序来帮帮LZQ吧。

输入
输入包括多组測试用例,每组输入数据仅仅有一行数字(数字之间没有空格)。这行数字的长度不大于5000。

输入数据保证:切割得到的非负整数不会大于100000000;假设有输入数据全为5。则输出0。

输出
对于每一个測试用例。输出切割得到的整数排序的结果。相邻的两个整数之间用一个空格分开。每组输出占一行。

例子输入
0051231232050775
例子输出
0 77 12312320
解题思路
   要注意下面几种情况:
        1、开头就是5
        2、结尾不是5
        3、中间连续的5     (这个忘记我考虑了,大家要注意一下啊)
代码
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char s[5100];
int num[5100];
int main()
{
	int i,j,k;
	int len;
	int now;
	while(scanf("%s",s)!=EOF)
	{
		len=strlen(s);
		for(i=0;i<len;i++)
		    if(s[i]!='5')
		        break;
		k=0;
		now=0;
		for(;i<len;i++)
		{
			if(s[i]=='5')
			{
				num[k++]=now;
				now=0;
				for(;i<len;i++)
				    if(s[i]!='5')
				        break;
				i--;//记得考虑连续5的情况
			}
			else
			    now=now*10+s[i]-'0';
		}
		if(s[len-1]!='5')
		    num[k++]=now;
		sort(num,num+k);
		for(i=0;i<k;i++)
		{
			printf("%d",num[i]);
			if(i!=k-1)
			    printf(" ");
		}
		printf("\n");
	}
	return 0;
}
时间: 2024-10-23 21:53:23

1503171912-ny-一道水题的相关文章

碰到日期题就怕的我来写一道水题吧

HDOJ-2005, http://acm.hdu.edu.cn/showproblem.php?pid=2005 20XX系列的水题哈哈,写了二十分钟,就为找到一种比较正常不傻逼的写法... 嗯,学习了一下,闰年的判断可以写成一个接受参数的宏. #define lev(n) (n%4==0&&(n%100!=0||n%400==0)) 然后建立一个二维数组来存储闰年和非闰年的每月天数. int calendar[2][13] = { {0,31,28,31,30,31,30,31,31,

POJ 2028 When Can We Meet? (又是一道水题)

[题目简述]:N代表有几个会员,Q代表有几个会员的时候开会才算做有效,接下来N行,每行第一个数字代表这行有M个数,说明这个会员在哪几天有时间.最后让我们求出  最快  哪天开会. [分析]:简单题,见代码. // 248K 47Ms #include<iostream> using namespace std; int M[101]; int N,Q; int main() { int m; int m1; while(1) { cin>>N>>Q; if(N == 0

POJ 2501 Average Speed(不错的一道水题)

[题目简述]:给出我们时间和速度,让我们求出走了多远的距离 [分析]:这道题开始的时候没有太明白什么时候输出,后来看了别人的题解就明白了. 关于此题的几点总结: 1.时间的输入方法:scanf("%d:%d:%d",&h,&m,&s),注意积累! 2.关于空格的的输入控制使用char ch = getchar(),同时它还作为了本题的一个是否输出的标识控制的条件. 3.多积累类似题目的方法. 代码参考http://blog.csdn.net/yujuan_mao

2018焦作网络赛 - Poor God Water 一道水题的教训

本题算是签到题,但由于赛中花费了过多的时间去滴吧格,造成了不必要的浪费以及智商掉线,所以有必要记录一下 题意:方格从1到n,每一格mjl可以选择吃鱼/巧克力/鸡腿,求走到n格时满足 1.每三格不可重复同一种食物 2.每三格均不同食物时中间格子不可吃巧克力 3.每三格前后两格不可同时吃巧克力 以上三个条件的方案数,n<1e10 太长不看版:打表+快速幂AC 长篇吐槽版 很显然的,设\(dp[n][i][j][k]\),走到第\(n\)格时第\(n-2\)格的食物是\(i\),第\(n-1\)的食物

一道水题。。时间复杂度有问题

UPC OJ 一道水题 STL

Problem C: 字符串游戏 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 10  Solved: 3 [Submit][Status][Web Board] Description 说到游戏,大家还是比较喜欢的,但是玩游戏,如果想赢得对方还是得靠思维的,xy比较喜欢字符串,尤其是起始字母等于终止字母这样的字符串(the string's length must exceed one),但是呢,xy有个癖好,喜欢把每个字符重新分配一个值,喜欢

POJ 2726 Holiday Hotel 一道水题

貌似是当年楼教主出的题目. 有N个旅店,两个属性,距离D,价格C.选择旅店,若选择M 1.比M近的,价格比它高 2.比M便宜的,距离比它远 求有多少个这样的旅店 ① 暴力做法 两次排序,按照不同的关键字.然后扫描,过程中记录下前面另一个关键字的最小值,然后比较.若数组中sel为2则是. #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<alg

P5143 攀爬者(一道水题的反思)

都怪我太粗心了,从第一个结构体录入数据,排序的时候,sort函数却忘记改,这要是比赛上唉! HKE考完GDOI之后跟他的神犇小伙伴们一起去爬山. 题目描述 他在地形图上标记了NN个点,每个点Pi都有一个坐标(x_i,y_i,z_i)(xi?,yi?,zi?).所有点对中,高度值zz不会相等.HKE准备从最低的点爬到最高的点,他的攀爬满足以下条件: (1) 经过他标记的每一个点: (2) 从第二个点开始,他经过的每一个点高度zz都比上一个点高: (3) HKE会飞,他从一个点Pi爬到Pj的距离为两

一道字符串水题LSS(ACdream)

一道水题但是我错了好惨 罚时罚到最后一名 Problem Description Time flies, four years passed, colleage is over. When I am about to leave, a xuemei ask me an ACM  problem, but I can't solve it, I am 功力尽失.  Please help me so that I won't lose face in front of xuemei! Give y

一道cf水题再加两道紫薯题的感悟

1. 遇到一个很大的数除以另一个数时,可以尝试把这个很大的数进行,素数因子分解. 2. 遇到多个数的乘积与另一个数的除法时,求是否能整除,可以先求每一个数与分母的最大公约数,最后若分母数字为1,则证明可整除.或者把分子上的每个数进行素数因子分解,分母上的数也进行素数因子分解,若分子上的与分母上相同素数因子进行比较,分子上的素数因子指数大于分母位置上的,则证明可整除. 3. 遇到乘法的时候注意越界问题. 4. 遇到求某一个区间内,满足某一特征的数的个数,而这个特征与因子,约数有关,尝试用埃筛的方法