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.|

RGB7722 - Абсолют өөрчлөлт

Бид 1-ээс N хүртэлх тоог дугаар тоо хоёрын абсолют ялгавар нь k байхаар байрлуулна.

Жишээлбэл {3 4 1 2}  |3-1|=|4-2|=|1-3|=|2-4|=2

Хэрвээ байрлуулж чадахгүй бол -1 гэж хэвлэ

Оролт

Эхний мөрөнд тестийн тоо t өгөгдөнө. 1 <= t <= 10.

Дараагийн t мөрөнд N, k тоонууд зайгаар тусгаарлагдан өгөгдөнө. 1 <= N <=10^5, 0 <= k < n.

Гаралт

Тест бүрд харгалзан байрлал тоо 2-ых нь абсолют ялгавар k байхаар 1-N хүртэл тоог шинэ мөрөнд хэвлэнэ.

Хэрэв чадахгүй бол-1 гэж хэвлэнэ.  

Жишээ

Оролт 1

3

2 1

3 0

3 2

Гаралт 1

2 1

1 2 3

-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/absolute-permutation/problem

hide comments
2024-05-15 04:41:20
#include<iostream>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
int n, k, v, num = 1;
cin >> n >> k;
if(k == 0)
for(int i = 1; i <= n; i++)
cout << i << " ";
else{
v = n / k;
if(n % 2 == 0 && n % k == 0 && v % 2 == 0){
for(int i = 1; i <= n / k; i++){
if(i % 2 == 1){
for(int j = 1; j <= k; j++){
cout << num + k << " ";
num++;
}
}
else {
for(int j = 1; j <= k; j++){
cout << num - k << " ";
num++;
}
}
}
}
else cout << -1;
}
cout << '\n';
}
return 0;
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.