1124 数量【水题...】
2015-09-06 20:57
387 查看
数量
时间限制:200 ms | 内存限制:65535 KB难度:0
描述
HJS大牛想去街上吃饭,街道旁边拴着很多狗,他想我堂堂......(省略n个字)岂会被狗咬,所以他很牛的从狗的面前经过,不管是否被上一条狗咬过,下次还会从狗的面前过(
J I A N)
现在问题来了,我们给狗编号从1...n,有多次询问,每次询问M,N这一段有多少狗咬过他有多少狗没有咬过他
输入输入有多组数据,每组数据有N,M代表N个狗,M次询问(n<=1000000)
接下来一行有n个数正数代表被狗咬,负数代表不咬,0代表不确定看心情,所以我们只计算确定的就可以了
接下来M行每行两个数a,b代表a到b这一段
输出每次查询输出一行,每行两个数中间有一个空格,分别代表咬人的狗的数量,没咬人的数量
样例输入
5 6 -1 -2 3 4 5 1 2 1 3 1 4 2 4 3 5 1 5
样例输出
0 2 1 2 2 2 2 1 3 0 3 2
只要明白用数组来保存每个位置的信息,然后最后直接输出需要的结果就可以了,没多少难度........
主要是明白用两个数组来分别保存就可以了.........
#include<stdio.h>
#include<string.h>
int x[1000005],y[1000005];
int main()
{
int n,m,i;
while(~scanf("%d%d",&n,&m))
{
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
for(i=1;i<=n;++i)
{
int a;
scanf("%d",&a);
x[i]=x[i-1];
y[i]=y[i-1];
if(a>0)//正的表示咬了...
{
x[i]=x[i-1]+1;
}
else if(a<0)//没咬
{
y[i]=y[i-1]+1;
}
}
int a,b;
for(i=0;i<m;++i)
{
scanf("%d%d",&a,&b);
printf("%d %d\n",x[b]-x[a-1],y[b]-y[a-1]);//输出
}
}
return 0;
}
相关文章推荐
- UIImageView属性
- UIImagePickerController
- 由旋转矩阵反算旋转角度
- 传递二维数组作为参数的指针
- hdu 4737 A Bit Fun(TwoPointer)
- 关于数组排序的性能问题
- windows 使用记录
- UIDatePicker
- UIControl事件
- Hibernate运行所需最小库文件集合(Hibernate4.3.9)
- 数据结构—再回首01
- Cocos2d-js 开发记录:自定义按钮
- 环境搭配
- shell 输入输出
- 关于Canvas Scaler的作用
- 单例模式的多线程安全
- 数学专业的数学与计算机专业的数学的比较(转)
- UIButton属性
- 腾讯2015笔试:求N位格雷码(递归版and循环版and位运算版)
- UIAlertView