Основное
 
 
Отправитель Задача Язык Вердикт Время Память Отослано Протест.  
108661707 Дорешивание:
Moral_and_Law
939F - 31 GNU C++11 Полное решение 31 мс 2360 КБ 2021-02-28 14:22:15 2021-02-28 14:22:15
→ Исходный код
#include <bits/stdc++.h>
#define N 200201
#define inf 0x3f3f3f3f
using namespace std;
int n,m,l,r,h,t,q[N],f[N][2];
int main(){
	int i,j,k;scanf("%d%d",&n,&m);
	memset(f,0x3f,sizeof(f));f[0][0]=0;
	for(i=1;i<=m;i++){
		scanf("%d%d",&l,&r);
		for(j=0;j<=n;j++) f[j][i&1]=f[j][i&1^1];
		h=1;t=0;
		for(j=r;j>=0;j--){
			while(h<=t&&q[h]<l-j) h++;
			while(h<=t&&f[q[t]][i&1^1]>f[r-j][i&1^1]) t--;
			q[++t]=r-j;f[j][i&1]=min(f[j][i&1],f[q[h]][i&1^1]+1);
		}
		h=1;t=0;
		for(j=0;j<=min(n,r);j++){
			while(h<=t&&q[h]<j+l-r) h++;
			while(h<=t&&f[q[t]][i&1^1]>f[j][i&1^1]) t--;
			q[++t]=j;f[j][i&1]=min(f[j][i&1],f[q[h]][i&1^1]+2);
		}
	}if(f[n][m&1]>=inf) puts("Hungry");
	else printf("Full\n%d\n",f[n][m&1]);
	return 0;
}
?
Время: ? ms, память: ? КБ
Вердикт: ?
Ввод
?
Вывод участника
?
Ответ жюри
?
Комментарий чекера
?
Диагностика
?
Показать детали тестирования