Fişierul intrare/ieşire:oglinda.in, oglinda.outSursăONI 2016 clasa a 5-a
AutorMarius NicoliAdăugată defrancuCristian Francu francu
Timp execuţie pe test0.5 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Oglinda (clasa a 5-a)

Pentru un număr natural N se consideră şirul a=(1,2,3...,N), deci a[i]=i pentru orice i, 1≤i≤N. Asupra acestui şir se pot aplica operaţii de două tipuri:

a) la operaţia de tipul 1 se specifică două valori i şi j, cu 1≤i≤j≤N. Efectul acestei operaţii asupra şirului este de oglindire a secvenţei din şir care începe cu elementul de pe poziţia i şi se termină cu cel de pe poziţia j. De exemplu, dacă în şirul a=(1,2,3,4,5,6,7) se aplică operaţia 3 6, atunci şirul devine a=(1,2,6,5,4,3,7). Iar în şirul a=(1,4,3,2,5,6,7), dacă se aplică operaţia 4 6, atunci a=(1,4,3,6,5,2,7).
b) Operaţia de tipul 2 conţine un indice i, 1≤i≤N, şi cere să afişăm valoarea elementului care se află în acel moment pe poziţia i în şir.

Se consideră M astfel de operaţii într-o ordine dată.

Cerinţă

Scrieţi un program care să determine şi să afişeze rezultatul pentru fiecare operaţie de tipul 2.

Date de intrare

Fişierul de intrare oglinda.in conţine pe prima linie două numere naturale N şi M, separate printr-un spaţiu. Pe fiecare dintre următoarele M linii este specificată câte o operaţie de tipul 1 sau 2. O linie poate să conţină două sau trei numere, astfel: 1 i j (indicând o operaţie de tipul 1) respectiv 2 i (indicând o operaţie de tip 2). Valorile de pe aceeaşi linie sunt separate prin câte un spaţiu.

Date de ieşire

Fişierul de ieşire oglinda.out conţine un număr de linii egal cu numărul de operaţii de tipul 2 care sunt definite în fişierul de intrare. Pe fiecare linie este afişat câte un număr natural reprezintând rezultatul pentru o operaţie de tip 2 prezentă în fişierul de intrare, în ordinea în care acestea sunt definite.

Restricţii

  • 1 ≤ N ≤ 1 000 000
  • 1 ≤ M ≤ 2000
  • Pentru teste în valoare de 40 de puncte, vom avea 1 ≤ N ≤ 2000.
  • Se garantează că 1 ≤ i ≤ j ≤ N la operaţiile de tipul 1 şi că 1 ≤ i ≤ N la operaţiile de tip 2.
  • Se garantează că există cel puţin o operaţie de tipul 2.

Exemplu

oglinda.inoglinda.outExplicaţie
10 4
2 3
1 2 7
2 3
2 1
3
6
1
Şirul iniţial este: 1 2 3 4 5 6 7 8 9 10
Rezultatul operaţiei 2 3 are ca efect afişarea elementului de pe poziţia 3
(care este chiar 3).
Rezultatul operaţiei 1 2 7 are ca efect transformarea şirului în:
1 7 6 5 4 3 2 8 9 10.
Rezultatul operaţiei 2 3 are ca efect afişarea elementului de pe poziţia 3
(care acum este 6).
Rezultatul operaţiei 2 1 are ca efect afişarea elementului de pe poziţia 1
(care acum are valoarea 1).
Trebuie sa te autentifici pentru a trimite solutii. Click aici