# PBinfo #190 – Oglindiri – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Se dă un vector cu n elemente numere naturale, numerotate de la 1 la n, și m perechi de indici (i,j), cu 1≤i<j≤n. Fiecare secvență de elemente determinată de o pereche (i,j) se oglindește – primul elemente din secvență se interschimbă cu ultimul, al doilea cu penultimul, etc..

Cerinţa
Să se afișeze elementele vectorului după realizarea, în ordine, a celor m oglindiri.

Date de intrare
Fişierul de intrare oglindiri.in conţine pe prima linie numărul n, iar pe a doua linie cele n elemente ale vectorului. Următoarea linie conține numărul m, iar următoarele m linii câte o pereche de indici i j.

Date de ieşire
Fişierul de ieşire oglindiri.out va conţine pe prima linie cele n elemente ale vectorul obținute după cele m oglindiri, separate prin câte un spațiu.

Restricţii şi precizări

1 ≤ n ≤ 100
numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât 1000
1 ≤ m ≤ 100

Exemplu:
oglindiri.in

10
55 50 16 37 66 44 31 24 10 63 
3
5 8 
2 6 
6 10 
oglindiri.out

55 31 24 37 16 63 10 66 44 50 
Explicație
După prima operație de oglindire, vectorul devine:   55 50 16 37 24 31 44 66 10 63

După  a doua operație de oglindire, vectorul devine: 55 31 24 37 16 50 44 66 10 63

După a treia operație de oglindire, vectorul devine: 55 31 24 37 16 63 10 66 44 50

## Cod sursă C++

```cpp
#include <iostream>
#include <fstream>
#include <cassert>
using namespace std;
ifstream fin("oglindiri.in");
ofstream fout("oglindiri.out");
int n,a[1000],m;
int main(){
	fin >> n;
	for(int i=1;i<=n;++i)
		fin >> a[i];
	fin >> m;
	for( ; m ; --m){
		int i,j,aux;
		fin >> i >> j;
		assert(i<j);
		for( ; i<j; i++, j--){
			aux = a[i];
			a[i] = a[j];
			a[j] = aux;
		}
	}
	for(int i=1;i<=n;++i)
		fout << a[i] << " ";
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/190)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/190/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-190/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
