М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
GanDyrAS
GanDyrAS
08.02.2020 04:06 •  Информатика

В многопользовательской игре Agar.io игроки управляют бактериями. У каждой бактерии есть размер — целое положительное число. Если встречаются две бактерии разного размера, то бактерия большего размера поглощает меньшую бактерию. При этом меньшая бактерия исчезает, а размер большей бактерии увеличивается на размер меньшей бактерии. Если встречаются две бактерии равного размера, то ничего не происходит. Побеждает игрок, чья бактерия останется на игровом поле одна. В игре участвуют N игроков, вам даны размеры их бактерий. Определите, какие из игроков имеют возможность выиграть в этой игре.

Входные данные

Программа получает на вход целое число N, 1 ≤ N ≤ 105 — количество игроков. Следующие N строк содержат по одному числу ai —размеры бактерий, 1 ≤ ai ≤ 109. Числа ai заданы в порядке неубывания.

Выходные данные

Программа должна вывести N чисел равных «0» или «1», по одному числу в строке. Если i-е число равно 0, то это означает, что i-й игрок (размер бактерии которого первоначально был равен ai) ни при каких обстоятельствах не может выиграть в этой игре. Если i-е число равно 1, то это означает, что i-й игрок имеет возможность выиграть в этой игре.

нужно решение на на 90 не надо ​

👇
Ответ:
Настюша1118
Настюша1118
08.02.2020

N=int(input())

a=[]

sum = 0

f = 0

c = 0

for i in range(N):

l = int(input())

sum = sum + l

a.append(l)

if N == 1:

print(1)

else:

ans = []

for i in range(N-1, 0, -1):

if a[i] > a[i-1]:

if sum > a[-1] or (sum > a[i+1] and f == 1):

for k in range(c+1):

ans.append(1)

c = 0

f = 1

else:

ans.append(0)

f = 0

elif a[i] == a[i-1]:

c += 1

else:

ans.append(0)

f = 0

sum=sum-a[i]

ans = ans[::-1]

print(0)

for i in range(c):

print(0)

for i in ans:

print(i)

Объяснение:

во отве ☝️☝️☝️

4,8(98 оценок)
Ответ:
ЮлияК111111
ЮлияК111111
08.02.2020

О, наконец освободился этот слот, ну, в общем, смотри как надо было эту задачу решать:

#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] << " ";

}

4,4(70 оценок)
Открыть все ответы
Ответ:
Dedret
Dedret
08.02.2020

#include <iostream>

using namespace std;

class circle {

public:

   int x, y;

   double r, s;

   circle()

   {        

       x = 0;

       y = 0;

       r = 0;  

   }

   circle( int a = 0, int b = 0, double c = 0 )

   {

       set(a, b, c);        

   }

   void out()

   {

       cout << "Координаты: (" << x << ", " << y << ") Радиус: "<< r << " Площадь: " << endl;        

   }

   void set(int a, int b, double c)

   {

       x = a;

       y = b;

       r = c;

   }    

   void calculate() {

       s = r * r * 3.14159;        

   }

};

 

class sphere : public circle {

private:

   double  v;

   void calculate() {      

       s = 4 * 3.14 * r * r;  

       v = 3.14159 * pow(r, 3);

   }    

public:

   sphere();

   sphere() : circle(circle, double = 1.0);

   sphere (int = 0, int  = 0, double = 1.0) ;

 

 

 

void out()

   {

       circle::out();

       cout << ", радиус: " << r << ", длина: " << ", площадь: " << s;        

   }

};

int main(){

   setlocale(LC_ALL, "ru");

   circle a(2, 15, 4);

   a.out();

   sphere b;

 

   

   system("pause");

   return 0;

}

Объяснение: пойдёт?

4,4(57 оценок)
Ответ:
Sadovnik11
Sadovnik11
08.02.2020

Pascal:

1.

var a,b:Integer;

   x:Double;

begin

 writeln('Введите a, b: ');

 readln(a,b);

 x:=a+b;

 writeln(a,'+',b,'=',x);

 x:=a*b;

 writeln(a,'*',b,'=',x);

end.

2.

var a,b:Integer;

begin

 writeln('Введите оценки за две КР: ');

 readln(a,b);

if (a+b)>= 8 then writeln('Молодец!')

else writeln('Подтянись!')

end.

Python:

1.

a, b = int(input('Введите a')), int(input('Введите b'))

x = a+b

print(str(a) + '+' + str(b) + '=' + str(x))

x = a*b

print(str(a) + '*' + str(b) + '=' + str(x))

2.

a, b = int(input('Введите первую оценку')), int(input('Введите вторую оценку'))

if a+b >= 8:

print('молодец!')

else:

print('подтянись!')

4,7(8 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ