zoj 1338 Up and Down Sequences

原创 2012年03月23日 09:03:11
#include "iostream"
#include "stdio.h"
#include "iomanip"
using namespace std;

int main()
{
	int num[30], len, i, uptimes, downtimes, midtimes, sum1, sum2;
	bool up, down;
	while (cin >> num[0] && num[0])
	{
		len = 1;
		while (cin >> num[len] && num[len])
			len++;

		up = false, down = false;
		uptimes = downtimes = midtimes = sum1 = sum2 = 0;
		for (i = 1; i < len; i++)
		{
			if (up && num[i] >= num[i-1])
				sum1++;
			else if (down && num[i] <= num[i-1])
				sum2++;
			else if (up && num[i] < num[i-1])
			{
				up = false;
				down = true;
				downtimes++;
				sum2++;
			}
			else if (down && num[i] > num[i-1])
			{
				down = false;
				up = true;
				uptimes++;
				sum1++;
			}
			else if (!up && !down && num[i] > num[i-1])
			{
				up = true;
				sum1 += midtimes;
				midtimes = 0;
				sum1++;
				uptimes++;
			}
			else if (!up && !down && num[i] < num[i-1])
			{
				down = true;
				sum2 += midtimes;
				midtimes = 0;
				sum2++;
				downtimes++;
			}
			else if (!up && !down && num[i] == num[i-1])
				midtimes++;
		}
		cout.setf(ios::fixed);
		cout << "Nr values = " << len << ":  ";
		if (uptimes == 0)
			cout << "0.000000 ";
		else 
			cout << setprecision(6) << double(sum1) / double (uptimes) << " ";
		if (downtimes == 0)
			cout << "0.000000" << endl;
		else
			cout << setprecision(6) << sum2 / (double)downtimes << endl;
	}
}

信号量机制中的DOWN操作与UP操作详解

DOWN操作:linux内核中,对信号量的DOWN操作有如下几种: void down(struct semaphore *sem); //不可中断 int down_interruptible(st...
  • fzubbsc
  • fzubbsc
  • 2014年07月13日 11:48
  • 2162

临界资源 互斥访问 内核中的up和down函数

信号量(semaphore)是用于保护临界区的一种常用方法。只有得到信号量的进程才能执行临界区代码,而没有得到信号量的进程进入休眠等待状态。 Linux系统中与信号量相关的操作主要有如下4种。 1 定...
  • trochiluses
  • trochiluses
  • 2013年07月16日 09:29
  • 3700

Linux系统网络设备启动和禁止“ifconfig eth0 up/down”命令的跟踪

前面文章讲了Linux系统的ethtool框架的一些东西,是从用户空间可以直观认识到的地方入手。同样,本文从Linux系统绝大部分人都熟悉的“ifconfig eth0 up”命令来跟踪一下此命令在内...
  • subfate
  • subfate
  • 2015年03月30日 22:02
  • 7043

Extjs4中up()和down()的用法以及组件查找_ComponentQuery类

Extjs4中up()和down()的用法 Extjs4.x中,新增加了两个方法up()和down()方法。这两个方法都是用来获取组件的,下面我们来看下官方解释。 up( Stri...
  • cswhale
  • cswhale
  • 2014年01月17日 12:51
  • 11641

linux同步机制之信号量down 和up

三、信号量(semaphore)    Linux内核的信号量在概念和原理上和用户态的System V的IPC机制信号量是相同的,不过他绝不可能在内核之外使用,因此他和System V的IPC机制信...
  • liuxd3000
  • liuxd3000
  • 2014年01月06日 10:45
  • 10191

查看Linux下网卡连接状态(up还是down)

文章来至http://hi.baidu.com/nan5715077/blog/item/4bd02f071b5f01ca7a8947cd.html  第1种方法     [root@...
  • shanliangliuxing
  • shanliangliuxing
  • 2014年01月08日 17:31
  • 6113

android焦点分发无法获取到Down事件,却有Move和Up

*首先:在父view里面重新拦截方法,判断他是一个滑动事件的时候return true,将事件拦截给自己的ontouchEvent。*@Override public boolean onInter...
  • a943262510
  • a943262510
  • 2015年12月08日 12:33
  • 1096

信号量工作原理

内核相关文件为include/linux/semaphore.h和kernel/semaphore.c 主要结构体: struct semaphore { raw_spinlock_t lock;...
  • lixiaojie1012
  • lixiaojie1012
  • 2015年01月03日 18:57
  • 1317

从底向上层次遍历二叉树

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left...
  • cow__sky
  • cow__sky
  • 2014年03月08日 20:57
  • 986

python中的带默认参数的函数

1、内置函数 )2、创建函数 3、参数类型 分为两种函数参数类型 : 位置参数:依据位置传递参数 :关键词参数:依据关键词传递参数...
  • jasonLee_lijiaqi
  • jasonLee_lijiaqi
  • 2017年12月26日 19:09
  • 41
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zoj 1338 Up and Down Sequences
举报原因:
原因补充:

(最多只允许输入30个字)