
Переведите из 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

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

Объяснение: почти все компиляторы имеют ограничение по оперативной памяти, а программа требует ее в количестве Дохрена , потому пришлось использовать либо вектора либо динамичнские массивы(я выбрал динамические )
#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;
}



Переведем данный код на язык 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
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili