search points attachment profile arrow left arrow right star heart verified symbols equation arrow-down question mark check menu accountancyadministrationagriculturalalgebraallarabicartart_musicbelarusbelarus_altbiologybusinesscatalachemistrychineseeconomicsegzamenglishentrepreneurshipenvironmentethicseuskarafirst_aidfrenchgalegogeographygeologygeometrygermangrammarhealthhistoryindia_langindonesian_langinformaticsitalianjapanesekazachkazach_altkoreanlanguagelatinlawlife_scienceliteraturelogicmathematicsmusicnigerian_langother_languagesotherspedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligionrpa_langrussianrussian_altsciencesecurityskillssocial_sciencesociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation accountancyadministrationagriculturalalgebraall_1arabicartart_music_2belarusbelarus_altbiologybusiness_2catalachemistry_1chineseeconomicsexam_3englishentrepreneurshipenvironment_2ethicseuskarasecurity_1frenchgalegogeography_4geology_4geometrygermangrammarhealthhistoryindia-langindonesian-langinformaticsitalianjapanesekazachAsset 230koreanlanguagelatinlawlife-scienceliteraturelogic_2mathematicsmusicnigerian-langotherlanguagesother_1pedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligion_1rpa-langrussianrussian_altsciencesecurity_3_mskills_1allsocial_science_5_msociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation
Автор - pro100sania2653617

Переведите из 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 2
3
5
1 2
1 1
3 0
3 1
3 2
вывод:
0
1
2

Ответ

Автор - maxpavlutenkof

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

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

}

Ответы и объяснения

По всем вопросам пишите на - vashurokk@rambler.ru
Сайт znanija.net не имеет отношения к другим сайтам и не является официальным сайтом компании.