Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

RGB7727 - Дарааллыг тойргоор эргүүлэх

Жон Ватсон дарааллыг тойргоор эргүүлэх гэдэг даалгавраар Шерлокыг шалгахыг хүсчээ.

Нэг удаа эргүүлэлт хийвэл дарааллын сүүлийн гишүүнийг эхэнд аваачин бусад гишүүдийг баруун тийш нэг шилжилт хийсэнтэй адил.

Өгөгдсөн n урттай дарааллаас k удаа дугуй эргүүлэлт хийсний дараа q ширхэг байрлал дээрх тоог олох даалгавар Шерлок авсан бол түүнд туслаарай.

Оролт

Эхний мөрөнд дарааллын урт n, k, q өгөгдөнө. 1 <=  n, k <= 10^5, 1 <= q <= 500.

Дараагийн мөрөнд дарааллын гишүүд зайгаар тусгаарлагдан өгөгдөнө. 1 <= a[i] <= 10^5.

Дараагийн q мөр бүрт эргүүлэлт хийсний дараах байрлалын тоо өгөгдөнө.  0 <= байрлал < n.

Гаралт

Шинэ мөр бүрт эргүүлэлт хийсний дараах байрлал дахь дарааллын гишүүнийг хэвлэнэ.

Жишээ

Оролт 

3 2 3

1 2 3

0

1

2

Гаралт

2

3

1

Тайлбар

1 дэх эргүүлэлтийн  дараа дараалал { 3, 1, 2 } болно.

2 дахь эргүүлэлтийн  дараа дараалал { 2, 3, 1} болно. 

0 дэх гишүүн 2

1 дэх гишүүн 3

2 дахь гишүүн 1

 

Орчуулсан : Дархан-Уул аймгийн Монгол-Оюу сургуулийн 11.1 ангийн сурагч Э.Цэлмэг 


Нэмсэн:Bataa
Огноо:2020-03-11
Хугацааны хязгаарлалт:1s
Эх кодын хэмжээний хязгаарлалт:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Програмчлалын хэлүүд:ADA95 ASM32 ASM64 BASH BF C NCSHARP CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO JULIA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYPY3 PYTHON3 RUBY SCALA SCM guile ST TCL WHITESPACE
Эх сурвалж:https://www.hackerrank.com/challenges/circular-array-rotation/problem

hide comments
2024-05-08 00:25:43
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
long long n, k, q, r;
vector<long long> v, ro, monk;
cin >> n >> k >> q;

// Input values for v
for (int i = 0; i < n; i++) {
cin >> r;
v.push_back(r);
}

// Input values for ro
for (int i = 0; i < q; i++) {
cin >> r;
ro.push_back(r);
}
monk.resize(n, 0);
for (int i = 0; i < n; i++) {
monk[(i + k) % n] = v[i];
}

for (int i = 0; i < q; i++) {
long long index = ro[i] ;
cout << monk[index] << endl;
}
return 0;
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.