description: Theofanis has a riddle for you and if you manage to solve it, he will give you a Cypriot snack halloumi for free (Cypriot cheese).
  
  You are given an integer n. You need to find two integers l and r such that -10^{18} ≤ l < r ≤ 10^{18} and l + (l + 1) + … + (r - 1) + r = n.
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10^4) — the number of test cases.
  
  The first and only line of each test case contains a single integer n (1 ≤ n ≤ 10^{18}).
  
  Output
  
  For each test case, print the two integers l and r such that -10^{18} ≤ l < r ≤ 10^{18} and l + (l + 1) + … + (r - 1) + r = n. 
  
  It can be proven that an answer always exists. If there are multiple answers, print any.
  
  Example
  
  Input
  
  
  7
  1
  2
  3
  6
  100
  25
  3000000000000
  
  
  Output
  
  
  0 1
  -1 2 
  1 2 
  1 3 
  18 22
  -2 7
  999999999999 1000000000001
  
  Note
  
  In the first test case, 0 + 1 = 1.
  
  In the second test case, (-1) + 0 + 1 + 2 = 2.
  
  In the fourth test case, 1 + 2 + 3 = 6.
  
  In the fifth test case, 18 + 19 + 20 + 21 + 22 = 100.
  
  In the sixth test case, (-2) + (-1) + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 = 25.
solution: #include <bits/stdc++.h>
  using namespace std;
  int gcd(long long int a, long long int b) {
    if (b == 0) return a;
    return gcd(b, a % b);
  }
  long long binpow(long long a, long long b) {
    if (b == 0) return 1;
    long long res = binpow(a, b / 2);
    if (b % 2)
      return res * res * a;
    else
      return res * res;
  }
  bool palin(string s) {
    int error = 0;
    int n = s.length();
    for (int i = 0; i < n; i++) {
      if (s[i] != s[n - 1 - i]) {
        return false;
      }
    }
    return true;
  }
  static int common;
  long lcm(int n1, int n2) {
    common += n2;
    if (common % n1 == 0)
      return common;
    else
      return lcm(n1, n2);
  }
  long long binpow(long long a, long long b, long long m) {
    a %= m;
    long long res = 1;
    while (b > 0) {
      if (b & 1) res = res * a % m;
      a = a * a % m;
      b >>= 1;
    }
    return res;
  }
  bool isPerfectSquare(long long int x) {
    if (x >= 0) {
      long long sr = sqrt(x);
      return (sr * sr == x);
    }
    return false;
  }
  int stringTointeger(string str) {
    int temp = 0;
    for (int i = 0; i < str.length(); i++) {
      temp = temp * 10 + (str[i] - '0');
    }
    return temp;
  }
  string bn(int n) {
    string ans = "";
    while (n > 0) {
      if (n & 1) {
        ans += '1';
      } else {
        ans += '0';
      }
      n /= 2;
    }
    reverse(ans.begin(), ans.end());
    return ans;
  }
  int xorcal(long long int n) {
    if (n % 4 == 0) {
      return n;
    }
    if (n % 4 == 1) {
      return 1;
    }
    if (n % 4 == 2) {
      return n - 1;
    }
    return 0;
  }
  void arrayofprimeSieveOfEratosthenes(int n, vector<long long int> &v) {
    bool prime[n + 1];
    memset(prime, true, sizeof(prime));
    for (int p = 2; p * p <= n; p++) {
      if (prime[p] == true) {
        for (int i = p * p; i <= n; i += p) prime[i] = false;
      }
    }
    for (int p = 2; p <= n; p++)
      if (prime[p]) v.push_back(p);
  }
  bool isprime(long long int n) {
    if (n < 2) {
      return false;
    }
    for (int i = 2; i <= sqrt(n); i++) {
      if (n % i == 0) {
        return false;
      }
    }
    return true;
  }
  bool checkequal(int a[], int b[], int size) {
    long long int n = size;
    for (int i = 0; i < n; i++) {
      if (a[i] != b[i]) {
        return false;
      }
    }
    return true;
  }
  vector<int> primefact(int n) {
    vector<int> ans;
    while (n % 2 == 0) {
      ans.push_back(2);
      n = n / 2;
    }
    for (int i = 3; i * i <= n; i += 2) {
      while (n % i == 0) {
        ans.push_back(i);
        n = n / i;
      }
    }
    if (n > 2) {
      ans.push_back(n);
    }
    return ans;
  }
  void primeInRange(int L, int R, vector<long long int> &v) {
    int i, j, flag;
    for (i = L; i <= R; i++) {
      if (i == 1 || i == 0) continue;
      flag = 1;
      for (j = 2; j <= i / 2; ++j) {
        if (i % j == 0) {
          flag = 0;
          break;
        }
      }
      if (flag == 1) v.push_back(i);
    }
  }
  int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    ;
    long long int t;
    cin >> t;
    while (t--) {
      long long int n;
      cin >> n;
      if (n == 1) {
        cout << "0"
             << " "
             << "1"
             << "\n";
      } else {
        cout << "-" << n - 1 << " " << n << "\n";
      }
    }
    return 0;
  }
  