Cod sursa(job #2525440)

Utilizator Dragono63Stanciu Rares Stefan Dragono63 Data 17 ianuarie 2020 12:59:58
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.46 kb
#include <bits/stdc++.h>

using namespace std;
int n,t,m,a,b,x[55][55],v[55],aux,p[55],maxp,maxpi,maxw,minw;
bool com(int n1,int n2){
if (x[n1][0]+p[n1]<x[n2][0]+p[n2])
    return 1;
else
    return 0;
}
int main()
{
    cin>>t;
    for (int l=1;l<=t;l++){
        cin>>n>>m;
        for (int i=0;i<=n;i++)
        for (int j=0;j<=n;j++)
        x[i][j]=0;
        for (int i=1;i<=m;i++){
            cin>>a>>b;
            x[a][b]++;
            x[b][a]++;
            x[a][0]++;
            x[b][0]++;
        }
        for (int i=0;i<=n;i++){
            v[i]=i;
            p[i]=0;}
        sort(v+1,v+n+1,com);
        while(m>0)
        for (int i=1;i<=n;i++)while(x[v[i]][0]>0){
                maxp=0;
                maxpi=0;
            for (int j=1;j<=n;j++)
            {
                if (maxp<x[v[i]][j]){
                    maxp=x[v[i]][j];
                    maxpi=j;
                }
            }if (x[v[i]][maxpi]>0){
            p[v[i]]++;
            x[v[i]][0]--;
            x[maxpi][0]--;
            x[maxpi][v[i]]--;
            x[v[i]][maxpi]--;
            m--;
          //  cout<<"\n"<<v[i]<<" "<<maxpi;
            }
            sort(v+1,v+n+1,com);

        }
        maxw=0;
        minw=m+5;
        for (int i=1;i<=n;i++){
            if (p[i]>maxw)
                maxw=p[i];
            if (p[i]<minw)
                minw=p[i];
        }
        cout<<maxw<<" "<<minw;

    }
    return 0;
}