Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type struct {int x,y;
- float c;
- }muchie;
- muchie U[50]
- int L[50],n,m,i,j,v,w;
- float ct;
- void citire(int &n, int &m, muchie u[50]
- {
- cout<<"numaru de varfuri";cin>>n;
- cout<<"numaru de muchii";cin>>m;
- for(int i=1;i<=m;i++)
- {
- cout<<"muchia "<<i<<": "<<endl;
- cout<<"x=";cin>>u[i].x;
- cout<<"y=";cin>>u[i].y;
- cout<<"costult";cin>>u[i].c;
- }
- }
- void ordonare(int m, muchie u[50])
- {
- int p=0,ok,i;
- do{ p++;
- ok=1;
- for(i=1;i<m-p:i++)
- if(u[i].c > u[i+1].c)
- {
- swap(u[i],u[i+1]);
- ok=0;
- }
- } while(ok==1);
- }
- void kruskal() {
- for (int i = 1; i <= n; i++) {
- subArbOf[i] = i;
- }
- for (int i = 1; i <= m; i++) {
- if (subArbOf[u[i].x] != subArbOf[u[i].y]) {
- sum += u[i].cost;
- int subArbOfX = subArbOf[u[i].x],
- subArbOfY = subArbOf[u[i].y];
- for (int j = 1; j <= n; j++) {
- if (subArbOf[j] == subArbOfY) {
- subArbOf[j] = subArbOfX;
- }
- }
- }
- }
- }
- int main() {
- citire();
- ordonare();
- kruskal();
- cout << sum << endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment