Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream f("date.in");
- int n,p,m,t[101],tipar[101];
- struct nr
- {
- int st,dr;
- }a[101];
- void citire()
- {
- int i,j;
- p=0;
- f>>n>>m;
- while(f>>i>>j)
- {
- p++;
- a[p].st=i;
- a[p].dr=j;
- }
- for(i=1;i<=n;i++)
- t[i]=i;
- }
- int pivot(int st,int dr,int y[101])
- {
- int i,j,dj,di,aux;
- i=st;j=dr;di=0;dj=1;
- while(i<=j)
- {
- if(y[i]>y[j])
- {
- aux=y[i];
- y[i]=y[j];
- y[j]=aux;
- aux=di;
- di=dj;
- dj=aux;
- }
- i=i+di;
- j=j-dj;
- }
- return i;
- }
- void sortare(int st,int dr,int y[101])
- {
- int p;
- p=pivot(st,dr,y);
- if(st<=dr)
- {
- sortare(st,p-1,y);
- sortare(p+1,dr,y);
- }
- }
- void rezolvare()
- {
- int j,i,poz,Min,g,c;
- poz=1;
- g=1;tipar[1]=n;
- for(i=n;i>=1;i--)
- {
- if(t[a[i].st]!=t[a[i].dr]&&(t[a[i].st]==poz||t[a[i].dr]==poz))
- {
- if(t[a[i].st]>t[a[i].dr])
- t[a[i].st]=poz;
- else t[a[i].dr]=poz;
- }
- sortare(1,n,t);
- c=1;int k=0;
- for(i=1;i<=n;i++)
- if(t[i]==c)
- {
- c++;
- k++;
- }
- g++;
- tipar[g]=k;
- }
- for(i=n;i>=1;i--)
- cout<<tipar[i]<<' ';
- }
- int main()
- {
- citire();
- rezolvare();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement