#include <iostream>
typedef long long ll;
using namespace std;
bool ll_is_valid(ll t, ll N, ll x, ll y)
{
return t / x + (t - x) / y >= N;
}
ll f(ll N, ll x, ll y)
ll R = 1;
while (!ll_is_valid(R,N,x,y)) R *= 2;
ll L = R / 2;
while(R - L > 1)
ll M = (L + R) / 2;
if (!ll_is_valid(M,N,x,y)) {L = M;}
else {R = M;}
return R;
int main()
ll N,x,y;
cin >> N >> x >> y;
if(x > y) swap( x, y );
cout << f(N, x, y) << std::endl;
#include <iostream>
typedef long long ll;
using namespace std;
bool ll_is_valid(ll t, ll N, ll x, ll y)
{
return t / x + (t - x) / y >= N;
}
ll f(ll N, ll x, ll y)
{
ll R = 1;
while (!ll_is_valid(R,N,x,y)) R *= 2;
ll L = R / 2;
while(R - L > 1)
{
ll M = (L + R) / 2;
if (!ll_is_valid(M,N,x,y)) {L = M;}
else {R = M;}
}
return R;
}
int main()
{
ll N,x,y;
cin >> N >> x >> y;
if(x > y) swap( x, y );
cout << f(N, x, y) << std::endl;
}
from random import random
N = 10
a = []
for i in range(N):
b = int(random() * 50)
a.append(b)
print(a)
min = 101
for i in range(N-1):
s = a[i]+a[i+1]
if (s < min) and (s % 2 == 1):
min=s
print(min)
Пример:[41, 35, 16, 7, 29, 9, 16, 28, 10, 6]
23
2)
from random import random
N = 10
a = []
for i in range(N):
b = int(random() * 50)-25
a.append(b)
print(a)
k = 0
for i in range(N-1):
p = a[i]*a[i+1]
s = a[i]+a[i+1]
if (p % 2 != 0) and (s > 0):
k = k+1
print(k)
Пример:[11, 23, 12, -16, 21, 15, -11, -10, 10, 17]
3