Вопрос задан 19.07.2023 в 03:53. Предмет Информатика. Спрашивает Резниченко Ирина.

Переведите из PascalABC в C++ var p3,h,p,p1: array[1..2000000] of int64;

i,n,j,u,l,kf,x,o,p2:int64; begin u:=0; read(n,x);p2:=0; for i:=1 to n do read(h[i]); read(kf); i:=1; for i:=1 to kf do begin read(p[i]); if p[i]=1 then begin n:=n+1;read(h[n]);end; if p[i]=2 then p2:=p2+1; if p[i]=3 then begin u:=u+1; read(p3[u]); p3[u]+=1+p2; l:=0; for j:=1+p2 to (p3[u]-1) do begin if h[j]>=x then l:=l+1;end; writeln(l); end; end; end.Ввод:1 2351 21 13 03 13 2вывод:012
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Волкович Елизавета.

Объяснение: почти все компиляторы имеют ограничение по оперативной памяти, а программа требует ее в количестве Дохрена , потому пришлось использовать либо вектора либо динамичнские массивы(я выбрал динамические )

#include <iostream>

using namespace std;

int main()

{

long long *p = new long long[2000000];

long long *p1 = new long long[2000000];

long long *p3 = new long long[2000000];

long long *h = new long long[2000000];

long long n, u{0}, kf, x, o, p2{0};

cin >> n >> x; //n=1 x=2

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

cin >> h[i]; //=3

cin >> kf; //=5

for (long i = 0; i < kf; i++)

{

cin >> p[i];

if (p[i] == 1)

cin >> h[n++];

if (p[i] == 2)

p2++;

if (p[i] == 3)

{

long long l{0};

cin >> p3[u];

p3[u] += p2 + 1;

for (long long j = p2; j < p3[u] - 1; j++)

if (h[j] >= x)

l++;

u++;

cout << l << endl;

};

};

delete[] p, p1, p3, h;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Переведем данный код на язык C++:

cpp
#include <iostream> #include <vector> using namespace std; int main() { vector<int64_t> p3, h, p; int64_t p1; int64_t i, n, j, u, l, kf, x, o, p2; u = 0; cin >> n >> x; p2 = 0; h.resize(n + 1); for (i = 1; i <= n; ++i) cin >> h[i]; cin >> kf; for (i = 1; i <= kf; ++i) { cin >> o; if (o == 1) { n += 1; cin >> h[n]; } else if (o == 2) { p2 += 1; } else if (o == 3) { u += 1; cin >> p1; p3.push_back(p1 + 1 + p2); l = 0; for (j = 1 + p2; j < p3[u]; ++j) { if (h[j] >= x) l += 1; } cout << l << endl; } } return 0; }

Этот код переведет ввод и вывод в соответствии с C++. Пожалуйста, обратите внимание, что размер массивов p3, h, и p составляет 2000000 элементов, что может быть слишком большим для стека, поэтому лучше использовать динамические контейнеры вроде vector.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос