a, b = map (str, input ().split ())
if a.isdigit() and b.isdigit(): print(int(a)+int(b))
else: print(a+b)
Объяснение:
Эту программу можно написать несколькими , но рассмотрим самый простой.
Прежде всего важно понять, вводим мы значения в одну строку:
a, b = map(str, input().split())
Или в две строки:
a = input()
b = input()
Теперь, имея a и b, мы долны проверить, есть ли среди введённых значений числа:
isdigit() - позволяет понять, состоит ли строка из чисел
int - переводит строку в число
Если условие не выполняется просто складываем строки:
#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;
a, b = map (str, input ().split ())
if a.isdigit() and b.isdigit(): print(int(a)+int(b))
else: print(a+b)
Объяснение:
Эту программу можно написать несколькими , но рассмотрим самый простой.
Прежде всего важно понять, вводим мы значения в одну строку:
a, b = map(str, input().split())
Или в две строки:
a = input()
b = input()
Теперь, имея a и b, мы долны проверить, есть ли среди введённых значений числа:
if a.isdigit() and b.isdigit(): print(int(a)+int(b))
isdigit() - позволяет понять, состоит ли строка из чисел
int - переводит строку в число
Если условие не выполняется просто складываем строки:
else: print(a+b)
#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;
}