Submission #1296913

#TimeUsernameProblemLanguageResultExecution timeMemory
1296913nguyhoangphuRMQ (NOI17_rmq)C++20
0 / 100
1 ms344 KiB
#include<bits/stdc++.h>
using namespace std;
#define file "a"
// #define int long long 
#define ll long long
#define pii pair<int, int>
#define pli pair<ll, int>
#define fi first
#define se second
#define sz(a) (int)a.size()
#define pb push_back
#define mask(i) (1 << i)
const int N = 1e6, inf = 1e9;
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
int rad(int l, int r) { return l + rd() % (r - l + 1); }
void MAX(int &a, int b) { a = max(a, b); }
void MIN(int &a, int b) { a = min(a, b); }
struct stt 
{
  int l, r, id;
  bool operator < (const stt &o) const 
  {
    return id > o.id;
  }
};
int n, q;
int kq[N + 2];
bool vis[N + 2];
stt a[N + 2];
int x[15], mn[15][15];
bool kt[15], ok, run;
vector<pii> g[15];
void track(int i)
{
  if (ok) return;
  if (i == n)
  {
    ok = 1;
    for (int j = 0; j < n; j++) cout << x[j] << " ";
    return;
  }
  for (int j = 0; j < n; j++)
  if (!kt[j])
  {
    kt[j] = 1;
    x[i] = j;
    mn[i][i] = j;
    for (int p = i - 1; p >= 0; p--) 
    mn[p][i] = min(mn[p][i - 1], j);
    run = 1;
    for (pii x : g[i])
    {
      int l = x.fi, val = x.se;
      if (mn[l][i] != val) { run = 0; break; }
    }
    if (run) track(i + 1);
    kt[j] = 0;
  }
}
void Sub1()
{
  for (int i = 1; i <= q; i++) g[a[i].r].pb({a[i].l, a[i].id});
  track(0); 
  if (!ok) cout << -1;
}
signed main()
{
  ios_base::sync_with_stdio(0);
  cin.tie(0); cout.tie(0);
  // if (fopen(file".inp", "r"))
  // {
  //   freopen(file".inp", "r", stdin);
  //   freopen(file".out", "w", stdout);
  // }
  cin >> n >> q; 
  for (int i = 1; i <= q; i++) cin >> a[i].l >> a[i].r >> a[i].id;
  sort(a + 1, a + q + 1);
  if (max(n, q) <= 10) return Sub1(), 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...