zcmu1672

来源:互联网 发布:淘宝创建子帐号 编辑:程序博客网 时间:2024/06/06 11:20

1672: 憋说话,好好算

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 285  Solved: 90
[Submit][Status][Web Board]

Description

今天是热闹的双11节日,注定今天是无眠之日,你心里想着,我要快点刷完这几道题,去看一看我那价值连城的购物车,然而,刷题的时间总是过的飞快。一转眼就是夜晚了,你也刷完了题目, 这个时候,你决定出去呼吸一下新鲜的空气,也许是想去看看月亮,来个“但愿人长久,千里共婵娟”.....,突然,你陷入深思,似乎是你发现了什么,抑或是突然领悟到了什么,从你那炯炯有神,目光冰冷,眼带笑意,星目含威,锐利有神,深邃犀利,眼若饥鹰,双眼如潭,碧眼盈波,眼放光华的眼神中看的出,你正在数着对面的那栋宿舍,有几个人还没睡......,万万想不到的是,你是这样数着的,先从下到上从一开始数,数出了这栋楼是n层,然后每一层有m户人家。细心的你又发现。每户人家都是3个窗户,机智的你就认为如果一户人家没睡,正在狂欢双11,就至少有俩窗子在亮着。看你那扭曲的面部,一定是在算几户人家还么睡。(亮着的窗户用1,表示,灭的是0)

Input

第一行两个数n,m分别表示楼的高度,每层的住户数。接下来n行,每行m*3个数,表示窗户的状态(n,m<=1000)

Output

输出一个数表示几户人家没睡哇

Sample Input

2 2
1 1 0 0 0 0
1 0 1 0 0 1

Sample Output

2

HINT

Source

解题思路:
(1)用for循环控制输入,边输入边判断输入的个数是否为3的倍数,若是则进一步判断,这个数的前两位是否为1,为1计数器加1;
AC了的代码:
#include <iostream>
#include<cstdio>
#define M 3000005
int a[M],k,n,m,t,j,counts;
using namespace std;


int main()
{
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        counts=0;
    for(int i=1;i<=n*m*3;i++)
    {
        scanf("%d",&a[i]);
        if(i%3==0)
        {
             k=0;t=3;j=i;
            while(t--)
            {
                if(a[j]==1)
                    k=k+1;
                if(k==2)
                { counts++;
                   continue;
                }
                j--;
            }
        }
        }
    printf("%d\n",counts);
    }
    return 0;
}
第一次提交的时候显示WA,M当时定义3000000,空间开得太小了,改成3000005就AC了,这种低级错误以后不要再犯。
0 0