решал задачу (условие и тесты приложены в фото) но не знаю, как упростить решение. Если есть идеи, подскажите. Спасибо. olympiads.ru/zaoch/2019-20/zaoch/statements-20191209.pdf (Задача В)
#include <iostream>
using namespace std;
int main()
{
long long int n,h;
cin>>n>>h;
char z[100000];
long long int x[h];
for (long long int i=0; i<n; i++)
{
cin>>z[i]>>x[i];
if(x[i]>h || x[i]<=0)
{
cout<<'0'<<endl;
exit(0);
}
}
long long int counter=0;
long long int sum=0;
for (long long int i=0; i<n; i++)
{
if(z[i]=='u')
sum+=x[i];
else if(z[i]=='d')
sum-=x[i];
}
if(sum>h)
{
cout<<'0'<<endl;
exit(0);
}
for(long long int w=1;w<=h;)
{
for(long long int j=w;j<=h;j++)
{
long long int buf=j;
for (long long int i=0; i<n; i++)
{
if (j>h || j<=0) break;
if(z[i]=='u') j+=x[i];
if(z[i]=='d') j-=x[i];
if (j>h) counter--;
if (j<=0) counter--;
}
j=buf;
w++;
counter++;
}
}
cout<<counter<<endl;
}
Это достаточно оптимизировано?...
int main()
{
long long h, m = 0, M = 0, curr = 0;
int n;
cin >> n >> h;
for(int i = 0; i < n; ++i)
{
long long x; char c;
cin >> c >> x;
curr += c == 'd' ? -x : x;
if (m > curr) m = curr; else if (M < curr) M = curr;
}
curr = h-M+m;
cout << ((curr < 0) ? 0 : curr) << endl;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я пишу свой небольшой http-сервер в учебных целяхУ меня есть две реализации ответа на статический запрос, идентичные по смыслу, просто в одной...
По нажатию на кнопку из пункта меню, происходит сначала вызов прогресс бара по истечению 5 секунд переход на диалоговое окноПопытался сделать...