Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <list>
  5. #include <utility>
  6. #include <algorithm>
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     int n, s=0;
  12.     ifstream fin("Lab3.in");
  13.     if(fin.is_open())
  14.     {
  15.         fin>>n;
  16.         vector<int> d(n);
  17.         for(int i=0; i<n; i++)
  18.             {
  19.                 fin>>d[i];
  20.                 s=s+d[i];
  21.                 if(d[i]<0) break;
  22.             }
  23.         if(s!=2*(n-1))
  24.             cout<<"Nu se poate construi\n";
  25.         else
  26.         {
  27.             vector<int> tata(n, -1);
  28.             sort(d.begin(), d.end());
  29.             reverse(d.begin(), d.end());
  30.            /* cout<<"verificare";
  31.             for(int i=0; i<n; i++)
  32.                 cout<<d[i]<<' ';
  33.                 cout<<endl; */
  34.             int big_grad=n-1;
  35.             while(d[big_grad]==1)
  36.             {
  37.                 big_grad--;
  38.             }
  39.             int cop=n;
  40.             while(n>=3)
  41.             {
  42.                 tata[n-1]=big_grad;
  43.                 n--;
  44.                 d[big_grad]--;
  45.                 if(d[big_grad]==1)
  46.                     big_grad--;
  47.             }
  48.             tata[1]=0;
  49.             for(int i=0;i<cop; i++)
  50.                 cout<<tata[i]<<' ';
  51.             n=cop;
  52.             vector<list<int>> lista_fii(n);
  53.             for(int i=1; i<n; i++)
  54.                 lista_fii[tata[i]].push_back(i);
  55.  
  56.         }
  57.  
  58.  
  59.     }
  60.  
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement