taa19707470
?>

Дано число b и набор из десяти чисел. вывести минимальный из тех элементов набора, которые больше b, а также его номер. если чисел, больших b, в наборе нет, то дважды вывести 0. с решением , нужно для excel vba

Информатика

Ответы

rayon14

1) n = 16

2) m = 180

3) a = 26

4) a = 22

5) b = 1

Объяснение:

1)

v := 1 // v = 1

n := 24 // n = 24

v := n - v * 4 // 24 - 1 * 4 ⇒ v = 20

n := v * 2 - n // 20 * 2 - 24 ⇒ n = 16

n = 16

2)

k := 3 // k = 3

m := 30 // m = 30

k := m - k * 3 // 30 - 3 * 3 ⇒ k = 21

m := k * 10 - m // 21 * 10 - 30 ⇒ m = 180

m = 180

3)

a := 4 // a = 4

b := 9 // b = 9

b := 6 * b - a // 6 * 9 - 4 ⇒ b = 50

a := b / 5 * 3 - a // 50 / 5 * 3 - 4 ⇒ a = 26

a = 26

4)

a := -12 // a = -12

b := 14 - a / 2 // 14 - (-12) / 2 ⇒ b = 20

b := (b - a) / 8 // (20 - (-12)) / 8 ⇒ b = 8

a := b * 2 + 6 // 8 * 2 + 6 ⇒ a = 22

a = 22

5)

a := 7 // a = 7

b := 2 // b = 2

a := b * 4 + a * 3 // 2 * 4 + 7 * 3 ⇒ a = 29

b := 30 - a // 30 - 29 = 1

b = 1

Stryapunina

#include <iostream>

#include <vector>

#include <set>

#define ll long long

using namespace std;

signed main() {

   ll n;

   cin >> n;

   vector<pair<ll,ll>> a(n);

   vector<ll> pref(n,0),d(n,0),ans(n,0);

   set<ll> s;

   for(ll i = 0; i < n; i++){

       cin >> a[i].first;

       a[i].second = i;

       s.insert(a[i].first);

       if(i == 0)

           pref[i] = a[i].first;

       else

           pref[i] = pref[i-1] + a[i].first;

       d[i] = s.size();

   }

   if(d[n-1] > 1 || n == 1)

       ans[a[n-1].second] = 1;

   for(ll i = n - 2; i >= 0; i--){

       if(pref[i] > a[i + 1].first && ans[a[i+1].second] == 1 && d[i] > 1)

           ans[a[i].second] = 1;

   }

   for(ll i = 0; i < n; i++)

       cout << ans[i] << " ";

}

P.S. Откуда задача, уж больно часто я ее встречаю на подобных сайтах

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дано число b и набор из десяти чисел. вывести минимальный из тех элементов набора, которые больше b, а также его номер. если чисел, больших b, в наборе нет, то дважды вывести 0. с решением , нужно для excel vba
Ваше имя (никнейм)*
Email*
Комментарий*