當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]【CF簡介】提交鏈接:CF 645C題面:C. Enduring Exodus time limit per test 2 seconds memory limit per test 256 me

【CF簡介】

提交鏈接:CF 645C


題面:


C. Enduring Exodus time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output

In an attempt to escape the Mischievous Mess Makers' antics, Farmer John has abandoned his farm and is traveling to the other side of Bovinia. During the journey, he and hisk cows have decided to stay at the luxurious Grand Moo-dapest Hotel. The hotel consists ofn rooms located in a row, some of which are occupied.

Farmer John wants to book a set of k?+?1 currently unoccupied rooms for him and his cows. He wants his cows to stay as safe as possible, so he wishes to minimize the maximum distance from his room to the room of his cow. The distance between rooms i and j is defined as |j?-?i|. Help Farmer John protect his cows by calculating this minimum possible distance.

Input

The first line of the input contains two integers n andk (1?≤?k?<?n?≤?100?000)?— the number of rooms in the hotel and the number of cows travelling with Farmer John.

The second line contains a string of length n describing the rooms. Thei-th character of the string will be '0' if thei-th room is free, and '1' if thei-th room is occupied. It is guaranteed that at leastk?+?1 characters of this string are '0', so there exists at least one possible choice ofk?+?1 rooms for Farmer John and his cows to stay in.

Output

Print the minimum possible distance between Farmer John's room and his farthest cow.

Examples Input

7?2
0100100

Output

2

Input

5?1
01010

Output

2

Input

3?2
000

Output

1

Note

In the first sample, Farmer John can book room 3 for himself, and rooms 1 and 4 for his cows. The distance to the farthest cow is 2. Note that it is impossible to make this distance 1, as there is no block of three consecutive unoccupied rooms.

In the second sample, Farmer John can book room 1 for himself and room 3 for his single cow. The distance between him and his cow is 2.

In the third sample, Farmer John books all three available rooms, taking the middle room for himself so that both cows are next to him. His distance from the farthest cow is 1.












--------------------------------------------------------------------------------------啦啦啦,我是分割線--------------------------------------------------------------------------------------------------------------

題意:

??? 一個農(nóng)夫帶著k頭牛去住店,(人一間,每牛一間)已知該旅店共有n間房,其中部分房間已有人住,房間住宿情況由01串表示,0表示空,1表示已有人住,剩余房間足夠容納(k+1)頭牛/人。為了保障牛的安全,希望人住的房間離最遠的牛的房間位置盡量小,輸出最小距離。


思路:

??? 很明顯為了讓人住的離最遠的牛最近,那么最后這批人牛住的房間肯定是連續(xù)的(不算原有的住宿人員),且人住的位置離中心點越近越好。首先,枚舉住宿的左區(qū)間,如果左端點已有人住,則跳過該點,如果空,則二分以該點為左端點,空閑房間數(shù)為k+1的最左位置。隨后在這個區(qū)間內(nèi),開始尋找空閑的最中心位置(距離遠的那端盡量?。脜^(qū)間長度奇偶性設(shè)置兩個指針p1,p2的初始位置,隨后分別往兩端移動,因為一定有空閑位置,且兩指針同時移動,不會出現(xiàn)越界情況。最后找到一個解,則計算最遠距離,若小于最優(yōu)值,則更新。


代碼:


#include#include#include#includeusing?namespace?std;
char?s[100010];
int?room[100010];
int?main()
{
????int?n,k,len,le,ri,border,ans,pos;
	//讀入
	scanf("%d%d",&n,&k);
	scanf("%s",s);
	room[0]=0;
	for(int?i=1;i<=n;i++)
	{
		//前綴和
		if(s[i-1]-'0')
			room[i]=room[i-1];
		else
			room[i]=room[i-1]+1;
	}
	//設(shè)置一個肯定會被更新的最大值
	ans=10e6;
	for(int?i=1;i<=n;i++)
	{
		//該點已有人住
	???if(room[i]==room[i-1])
		???continue;
???????le=i;
	???ri=n;
	???border=-1;
	???//二分右區(qū)間
	???while(le>1;
		???if(room[mid]-room[i-1]>k)
		???{

			???border=mid;
			???ri=mid-1;
		???}
		???else
			???le=mid+1;
	???}
	???//如果能找到k+1個房間
	???if(border!=-1)
	???{
?????????int?len=(border-i),p1,p2;
		?//根據(jù)區(qū)間長度奇偶性,設(shè)置p1,p2
?????????if(len%2)
		?{
			?p1=(border+i)>>1;
			?p2=(border+i)/2+1;
		?}
		?else
		?{
			?p1=p2=(border+i)>>1;
		?}
		?//尋找最先出現(xiàn)空閑房間
		?while(1)
		?{
			?if((room[p1]!=room[p1-1]))
		????{
				pos=p1;
				break;
			}
			?else?if(room[p2]!=room[p2-1])
			?{
				?pos=p2;
				?break;
			}
			?p1--;
			?p2++;
		?}
?????????//更新最優(yōu)值
		?ans=min(ans,max(pos-i,border-pos));
	???}
	???//說明剩下,已無可能有k+1個房間
	???else
		???break;
	}
	printf("%dn",ans);
	return?0;
}





本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉