Advertisement
pb_jiang

ARC091C AC

Dec 14th, 2022
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. // Problem: E - LISDL
  2. // Contest: AtCoder - AtCoder Regular Contest 091
  3. // URL: https://atcoder.jp/contests/arc091/tasks/arc091_c
  4. // Memory Limit: 256 MB
  5. // Time Limit: 2000 ms
  6. //
  7. // Powered by CP Editor (https://cpeditor.org)
  8.  
  9. #include <assert.h>
  10. #include <bits/stdc++.h>
  11. using namespace std;
  12. #define dbg(...) logger(#__VA_ARGS__, __VA_ARGS__)
  13. template <typename... Args> void logger(string vars, Args &&... values)
  14. {
  15.     cerr << vars << " = ";
  16.     string delim = "";
  17.     (..., (cerr << delim << values, delim = ", "));
  18.     cerr << endl;
  19. }
  20.  
  21. template <class T> inline auto vv(int m) { return vector<vector<T>>(m, vector<T>(m)); }
  22. template <class T> inline auto vv(int m, int n) { return vector<vector<T>>(m, vector<T>(n)); }
  23. template <class T, T init> inline auto vv(int m) { return vector<vector<T>>(m, vector<T>(m, init)); }
  24. template <class T, T init> inline auto vv(int m, int n) { return vector<vector<T>>(m, vector<T>(n, init)); }
  25.  
  26. template <class T> using mpq = priority_queue<T, vector<T>, greater<T>>;
  27.  
  28. using ll = long long;
  29. using pii = pair<int, int>;
  30. using vl = vector<ll>;
  31. using vi = vector<int>;
  32.  
  33. int main(int argc, char **argv)
  34. {
  35.     ll n, a, b;
  36.     cin >> n >> a >> b;
  37.     if (a + b > n + 1 || a * b < n) {
  38.         cout << -1 << endl;
  39.         return 0;
  40.     }
  41.     vi ans;
  42.     /*
  43.     for (int i = b; i <= n; i += b) {
  44.         for (int j = i; j > i - b; --j) {
  45.             ans.push_back(j);
  46.         }
  47.     }
  48.     if (ans.size() < n) {
  49.         int rem = n - ans.size();
  50.         for (int i = 0; i < rem; ++i) {
  51.             ans.push_back(n - i);
  52.         }
  53.     }
  54.     */
  55.     int i = 0;
  56.     for (a--; a >= 0; a--) {
  57.         int sz = min(b, n - a);
  58.         for (int j = i + sz; j > i; j--) {
  59.             ans.push_back(j);
  60.         }
  61.         i += sz;
  62.         n -= sz;
  63.     }
  64.     for (auto x : ans)
  65.         cout << x << ' ';
  66.     cout << endl;
  67.     return 0;
  68. };
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement