n = int(input())
a = int(input())
b = int(input())
ans = max(0, min(a, b) - max(0, n-b) + 1)
print(ans)
Объяснение:
Пусть имеется a штук первого типа, b штук второго типа, а требуется взять n пирожных.
Пусть p - количество пирожных первого типа, которые взяли, q - количество пирожных второго типа, которые взяли. Тогда должны выполняться условия:
1) p+q = n
2) 0 <= p <= a
3) 0 <= q <= b
Рассмотрим третье неравенство. q заменим на n-p с учетом первого равенства. После этого преобразуем полученное неравенство.
0 <= n-p <= b
-b <= p-n <= 0
n-b <= p <= n
С учетом второго неравенства, получим окончательные границы для p:
max(0, n-b) <= p <= min(a, n).
Поскольку фиксированное значение p однозначно определяет q, то искомое количество выбрать пары (p, q) равно числу выбрать p - это количество целых чисел на отрезке [max(0, n-b); min(a, n)], то есть ans = min(a, n) - max(0, n-b) + 1. Может так получиться, что ответ неположителен - это из-за того, что выбрать пирожные вообще нельзя. Поэтому нужно и этот момент подкорректировать: ans = max(0, min(a, n) - max(0, n-b) + 1).
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector <int> arr1;
vector <int> arr2;
int n;
cin >> n;
for(int i = 0 ; i < n ; ++i)
{
int temp; cin >> temp;
arr1.push_back(temp);
}
cin >> n;
for(int i = 0 ; i < n ; ++i)
{
int temp; cin >> temp;
arr2.push_back(temp);
}
for(int i = 0 ; i < arr1.size() ; i++)
if(find(arr2.begin(), arr2.end(), arr1[i]) == arr2.end())
cout << arr1[i] << ' ';
}
В 256-цветной палитре каждая точка несет i2 = 8 бит информации (2^8 = 256).
В 4-цветной палитре каждая точка несет i1 = 2 бита информации (2^2 = 4).
Пусть объем видеопамяти равен K. Тогда:
K = 640 * 480 * i1 = 640 * 480 * 2 = 614400 бит
Размер второго изображения S = K / i2 = 614400 / 8 = 76800 бит = AxB, где A и В надо найти
Возможные разрешения изображений: 240x320, 160x480, 120x640 и тд