Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- #define ull unsigned long long int
- #define ld long double
- #define pb push_back
- #define p_b pop_back
- #define si stack<int>
- #define sll stack<ll>
- #define sc stack<char>
- #define vi vector<int>
- #define vll vector<ll>
- #define mii map<int, int>
- #define msi map<string, int>
- #define mci map<char, int>
- #define qc queue<char>
- #define qi queue<int>
- #define qll queue<ll>
- using namespace std;
- int main(){
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- int t;
- cin >> t;
- while(t--){
- int n, l, r, s;
- cin >> n >> l >> r >> s;
- int arr[n];
- for(int i = 1; i <= n; i++){
- arr[i-1] = i;
- }
- long sum1 = 0, sum2 = 0;
- for(int i = 0; i < r-l+1; i++){
- sum1 += arr[i];
- sum2 += arr[n-i-1];
- }
- if(s < sum1 || s > sum2){
- cout << "-1\n";
- } else{
- for(int i = r-l; i >= 0; i--){
- for(int j = n-1; j >= r-l+1; j--){
- if(s-sum1 >= abs(arr[j]-arr[i])){
- swap(arr[i], arr[j]);
- sum1 += abs(arr[j]-arr[i]);
- break;
- }
- }
- int j = n-2;
- while(j >= r-l+1){
- if(arr[j] > arr[j+1]){
- swap(arr[j], arr[j+1]);
- }
- j--;
- }
- }
- int a[n] = {0};
- for(int i = 0; i < l-1; i++){
- a[i] = arr[n-i-1];
- }
- for(int i = 0; i < n-l+1; i++){
- a[i+l-1] = arr[i];
- }
- for(int i = 0; i < n; i++){
- cout << a[i] << " ";
- }
- cout << "\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement