Beszúrások, törlések
1.
https://www.pbinfo.ro/probleme/1452/stergere-element
Egy n elemű sorozatból ki kell törölni a p sorszámú elemet
(az elemek 1-től sorszámozottak).
HF
2.
https://www.pbinfo.ro/probleme/158/inserare
Egy n elemű tömbbe a p sorszámú helyre be kell szúrni X-et
(az elemek 1-től sorszámozottak).
HF
3.
https://www.pbinfo.ro/probleme/2734/elimrep
Egy tömbből ki kell törölni az ismétlődő elemeket,
megtartva csak a bal oldalról első előfordulásukat.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int t[1000];
for (int i = 0; i < n; i++)
cin >> t[i];
for (int i = 0; i < n; i++) {
bool volt_mar = false;
for (int j = 0; j < i; j++)
if (t[i] == t[j])
volt_mar = true;
if (volt_mar) {
for (int j = i+1; j < n; j++)
t[j-1] = t[j];
n--;
i--;
}
}
for (int i = 0; i < n; i++)
cout << t[i] << " ";
cout << endl;
return 0;
}
|
4.
https://www.pbinfo.ro/probleme/159/inseraredupa
Egy tömbbe minden páros szám után be kell szúrni
annak kétszeresét.
HF
5.
https://www.pbinfo.ro/probleme/1365/aceeasi-paritate
Egy n elemű tömbben minden azonos parítású két egymás melletti
elem közé be kell szúrni azok számtani középarányosát.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int t[200];
for (int i = 0; i < n; i++)
cin >> t[i];
for (int i = 0; i <= n-2; i++) {
// t[i] és t[i+1]
// mindkettő páros v. mindkettő páratlan
if ((t[i]%2==0 && t[i+1]%2==0)
|| (t[i]%2!=0 && t[i+1]%2!=0))
{
int uj = (t[i] + t[i+1])/2;
// t[i+1]-re kell beszúrni
for (int j = n-1; j >= i+1; j--)
t[j+1] = t[j];
t[i+1] = uj;
n++;
i++;
}
// vagy: akkor jó, ha az összeg páros
/*
if ((t[i] + t[i+1]) % 2 == 0)
...
*/
}
for (int i = 0; i < n; i++)
cout << t[i] << " ";
cout << endl;
return 0;
}
|
6.
https://www.pbinfo.ro/probleme/4386/inserare3
Módosítani kell egy tömböt úgy, hogy a minimális értékű elem
előfordulásait megduplázzuk.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int t[2000];
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> t[i];
int minimum = INT_MAX;
for (int i = 0; i < n; i++)
if (t[i] < minimum)
minimum = t[i];
int i = 0;
while (i < n) {
if (t[i] == minimum) {
for (int j = n-1; j >= i+1; j--)
t[j+1] = t[j];
n++;
t[i+1] = t[i];
i += 2;
}
else {
i++;
}
}
for (int i = 0; i < n; i++)
cout << t[i] << " ";
cout << endl;
return 0;
}
|