洛谷P5639 【CSGRound2】守序者的尊严 普及-

P5639 【CSGRound2】守序者的尊严

标签:暴力
题目背景

由于Y校最近进行了对学校食堂的全面改革与对小卖部的全面整治(乱搞),导致学校小卖部卖的零食被禁售了;学校食堂的炸鸡窗口也消失了;

并且学校的学生处Q主任严禁学生点外卖,日夜监察。

都说民以食为天,由于整天挨饿,全校同学处于水深火热之中。
题目描述

zhouwc的朋友(朋友就是自己系列)小Z由于饥饿难忍,不得不铤而走险点外卖。

但是学校的Q主任为了能够抓住点外卖的学生布置了天罗地网——监控

但是由于学校给Q主任的经费有限,所以这些监控不能持续工作,工作一秒之后便要暂停休息一秒,即开启一秒后关闭一秒再开启一秒…以此类推。

还是由于Q主任的经费有限,这些监控被排成了一条直线,这条直线便在学生通往学生外卖驻点——二号门(没有门卫)的必经之路上。

因为小Z修习了疾跑技能,所以小Z通过任意个数关闭的监控的时间均为1(即一次行动可以经过若干个未开的监控)。

由于小Z想吃外卖又不想受到正在监控室看着监控的Q主任的处分,请你告诉他至少要多少时间才能安全到达外卖驻点。
输入格式

共2行

第一行一个正整数n,表示在这条路上一共有n个监控

第二行共有n个数。表示在第0秒是这些监控的开关情况,0表示监控关闭,1表示监控开启,并保证第一个监控一定是关闭的。
输出格式

共一行,表示小Z安全到达外卖驻点所需要的时间。
输入输出样例
输入 #1

6
0 0 1 1 0 1

输出 #1

4

输入 #2

6
0 0 0 0 0 0

输出 #2

1

说明/提示
数据范围:

对于10%10%10%的数据,1<=n<=101<=n<=101<=n<=10

对于30%30%30%的数据,1<=n<=1001<=n<=1001<=n<=100

对于50%50%50%的数据,1<=n<=10001<=n<=10001<=n<=1000

对于70%70%70%的数据,1<=n<=1000001<=n<=1000001<=n<=100000

对于100%100%100%的数据,1<=n<=10000001<=n<=10000001<=n<=1000000

监控的开关情况均用0和1来表示。
样例解释1:

小Z在第一秒时冲到第二个监控处,用时1秒,总用时1秒。

第二秒时,监控的开关状况变为了 1 1 0 0 1 0

这时,小Z迅速从二号监控处冲到了四号监控处,用时1秒,总用时2秒。

第三秒时,监控的开关状况变为了 0 0 1 1 0 1

这时,小Z迅速从四号监控处冲到了五号监控处,用时1秒,总用时3秒。

第三秒时,监控的开关状况变为了 1 1 0 0 1 0

这时,小Z迅速从五号监控处冲出了监控区域,用时1秒,总用时4秒。
样例解释2

小Z在第一秒直接冲出了监控区域

#include
#include
using namespace std;
int a[1000005];
int main()
{
	int n,sum,time=0,flag=0;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		if(a[i]==1&&flag==0)
		{
			flag=1;
			time++;
//			printf("--%d",i);
		}
		else if(a[i]==0&&flag==1){
			flag=0;
			time++;
//			printf("--%d",i);
		}
	}
	printf("%d\n",time+1);
	
	
	return 0;
}

你可能感兴趣的:(程序设计)