fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn = 2e5 +5;
  4. int ans[maxn];
  5. vector <int> v[maxn];
  6. vector < pair<int, int> > a;
  7. bool u[maxn];
  8.  
  9. int main(){
  10. ios_base::sync_with_stdio(0);
  11. cin.tie(0);cout.tie(0);
  12.  
  13. int n;
  14. cin>>n;
  15.  
  16. int l, r;
  17. for(int i=1; i<=n; i++){
  18. cin>>l>>r;
  19.  
  20. if(l==r){
  21. u[l] = 1;
  22. ans[l] = i;
  23. }
  24.  
  25. for(int j=l; j<=r; j++){
  26. v[i].push_back(j);
  27. }
  28.  
  29. a.push_back(make_pair(v[i].size(), i));
  30. }
  31.  
  32. sort(a.begin(), a.end());
  33.  
  34. for(int i=0; i<n; i++){
  35. int cnt = a[i].first;
  36. int val = a[i].second;
  37.  
  38. for(int j=0; j<v[val].size(); j++){
  39. int id = v[val][j];
  40.  
  41. if(!u[id]){
  42. ans[id] = val;
  43. u[id] = 1;
  44. break;
  45. }
  46. }
  47.  
  48. }
  49. bool ok = 0;
  50.  
  51. for(int i=1; i<=n; i++){
  52. if(!u[i]){
  53. ok = 1;
  54. break;
  55. }
  56. }
  57.  
  58. if(ok){
  59. cout<<-1;
  60. return 0;
  61. }
  62.  
  63. for(int i=1; i<=n; i++){
  64. cout<<ans[i]<<' ';
  65. }
  66. }
Success #stdin #stdout 0.01s 8352KB
stdin
Standard input is empty
stdout
Standard output is empty