#include <algorithm>
#include <iostream>
#include <random>
#include <vector>
void fillVector(std::vector<int>&, int lowerBound, int upperBound);
void print(const std::vector<int>&);
int main() {
std::vector<int> vec { };
std::size_t size { 0 };
std::cout
<< "Please, enter the number of elements: ";
std::cin
>> size;
if (size < 1 || size > 1000) {
std::cerr
<< "The size must be in the range [1; 1000]" << std::endl;
return 1;
}
vec.resize(size);
fillVector(vec, 0, 100);
print(vec);
std::size_t changes { 0 };
for (std::size_t i { 0 }; i < vec.size() - 1; ++i) {
int tempValue { 0 };
for (std::size_t j { i + 1 }; j < vec.size(); ++j) {
if (vec.at(i) > vec.at(j)) {
tempValue = vec.at(i);
vec.at(i) = vec.at(j);
vec.at(j) = tempValue;
++changes;
}
}
}
print(vec);
std::cout
<< "Number of changes: " << changes << std::endl;
return 0;
}
void fillVector(std::vector<int>& vec, int lowerBound, int upperBound) {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> dist(lowerBound, upperBound);
int randomValue { };
for (auto& value : vec) {
while (true) {
randomValue = dist(gen);
if ( std::find( vec.begin(), vec.end(), randomValue) == vec.end() ){
value = randomValue;
break;
}
}
}
}
void print(const std::vector<int>& vec) {
for (const auto value : vec) {
std::cout
<< value << " ";
}
std::cout
<< std::endl;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int s, n;
cin >> s >> n;
vector <int> a(n);
for(int i = 0; i < n; i++)
cin >> a[i];
sort(a.begin(), a.end());
int prev_s = 0, count = 0;
for(int i = 0; i < n; i++)
if(a[i] >= s)
{
prev_s = a[i];
count++;
for(int j = i; j < n; j++)
if(a[j] - prev_s >= 3)
{
count++;
prev_s = a[j];
}
break;
}
cout << count;
return 0;
}
& - конъюнкция или логическое умножение, даёт истину тогда и только тогда, когда обе переменных равны 1, т.е, когда А=1 и В=1.
v - дизъюнкция или логическое сложение даёт истину во всех случаях, за исключением того, когда обе переменных равны 0, т.е, когда А=0, В=0.
A&B - простейшая конъюнкция, пишем 1 в ячейке, где А=1, В=1, а в остальные пишем 0.
(AvB)&(AvC) - по закону дистрибутивности можем сократить до Av(B&C). А значит 1 ставим только в тех ячейках, где А=1 или B,C=1 (или оба условия выполняются одновременно), в остальных ставим 0.
(A&B)v(B&C) - по закону дистрибутивности можем сократить до B&(AvC). То есть мы можем сразу поставить 0 там, где B=0. В случаях, где В=1 мы везде ставим 1, за исключением ситуации, где A,C=0.
P.S Таблицы истинности во вложении:3