数学题

来源:互联网 发布:js rowindex 编辑:程序博客网 时间:2024/04/28 08:45

勤奋的涟漪

Time Limit:1000MS  Memory Limit:65536K
Total Submit:7 Accepted:1

Description

涟漪进入集训队后,他会去实验室训练或者去操场锻炼。 接下来n天,每天的情况是一下4种中的一种: 1.当天体育馆关门了和没有训练赛 2.当天体育馆关门了和有训练赛 3.当天体育馆开放和没有训练赛 4.当天体育馆开放和有训练赛 涟漪知道之后n天的情况。 涟漪每一天可以休息,或者打训练赛(当天有训练赛)或者运动(当天体育馆开放)。 涟漪要制定一个训练计划,决定每天干什么,但是涟漪不会连续两天都运动或者连续两天都打训练赛, 请帮涟漪找出她最少休息的天数(她不打训练赛和运动)。 休息的时候,她会做下面的数学题

Input

第一行一个整数 n(1<=n<=100) 第二行有n个数a1,a2,a3,....an(0<=ai<=3)) ai=0 ,代表第一种情况 ai=1,代表第二种情况 ai=2 ,代表第三种情况 ai=3 ,代表第四种情况

Output

输出 一个数 表示(涟漪休息的天数) 乘以(数学题的答案的积)。

Sample Input

71 3 3 2 1 2 3

Sample Output

0

Source

ac代码如下:

#include<stdio.h>#include<string.h>int main(){/*qian-->1:????qian-->2:????qian-->3:????*/int i,n,cnt=0,qian=1;int a[200]={0};scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){if(qian==1 && a[i]==0 || qian==2 && a[i]==2 || qian==2 && a[i]==0 || qian==3 && a[i]==0 || qian==3 && a[i]==1)cnt++,qian=1;else if(qian==2)qian=3;else if(qian==3)qian=2;else{if(a[i]==1) qian=3;else if(a[i]==2) qian=2;else{if(a[i+1]==1) qian=2;elseqian=3;}}}printf("%d",cnt*(-24));return 0;}

注意:当他休息时除外的所有天数都是在工作(刷题or运动),但可能那天运动馆开门并且有训练赛,这时就要考虑下一天做什么,不能与下一天的事件重复,若下一天休息就随便选

原创粉丝点击