搜索
查看: 640|回复: 0

12052

[复制链接]
发表于 2015-10-5 17:00:37 | 显示全部楼层 |阅读模式
这个代码有问题
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
/*
5 5
4 3 5 6 1
1 2 1
1 4 1
2 3 2
3 5 1
4 5 2
*/
int qmin(int p,int q)
{
        return p<q?p:q;
}
int qmax(int p,int q)
{
        return p>q?p:q;
}

int main()
{
        int min[101][101],max[101][101],n,m,i,j,k,t1,t2,t3,a[101],zuida,t;
    scanf("%d %d",&n,&m);
    for(i=1;i<=n;i++)
    {
                scanf("%d",&a);
    }
    for(i=1;i<=n;i++)
    {
                for(j=1;j<=n;j++)
        {
                        if(i!=j)
            {
                                min[j]=-1;
                                max[j]=-1;
            }
            else
            {
                                min[j]=a;
                                max[j]=a;
            }
        }
    }
    for(i=1;i<=m;i++)
    {
                scanf("%d %d %d",&t1,&t2,&t3);
        min[t1][t2]=qmin(a[t1],a[t2]);
        max[t1][t2]=qmax(a[t1],a[t2]);
        if(t3==2)
        {
                        min[t2][t1]=qmin(a[t1],a[t2]);
                        max[t2][t1]=qmax(a[t1],a[t2]);       
        }
    }
   
    for(k=1;k<=n;k++)
                for(i=1;i<=n;i++)
                        for(j=1;j<=n;j++)
            {
                                if(min[k]!=-1 && min[k][j]!=-1)
                {
                                        if(min[j]==-1)
                    {
                                                t=qmin(a,a[j]);
                        t=qmin(t,a[k]);
                        min[j]=t;
                    }
                    else
                    {
                                                t=qmin(a,a[j]);
                        t=qmin(t,a[k]);
                                                min[j]=qmin(min[j],a[k]);
                    }
                }
            }
            
     for(k=1;k<=n;k++)
                for(i=1;i<=n;i++)
                        for(j=1;j<=n;j++)
            {
                                if(max[k]!=-1 && max[k][j]!=-1)
                {
                                        if(max[j]==-1)
                    {
                                                t=qmax(a,a[j]);
                        t=qmax(t,a[k]);
                        max[j]=t;
                    }
                    else
                    {
                                                t=qmax(a,a[j]);
                        t=qmax(t,a[k]);
                                                max[j]=qmax(max[j],t);
                    }
                  
                }
            }
   
    printf("\n\n\n");
    for(i=1;i<=n;i++)
    {
                for(j=1;j<=n;j++)
        {
                        printf("%3d ",min[j]);
        }
        printf("\n");
    }
   
    printf("\n");           
    for(i=1;i<=n;i++)
    {
                for(j=1;j<=n;j++)
        {
                        printf("%3d ",max[j]);
        }
        printf("\n");
    }   
   
    zuida=0;
        for(i=1;i<=n;i++)
    {
                if(max[n]-min[1]>zuida && max[n]!=-1 && min[1]!=-1)
                        zuida=max[n]-min[1];
    }
    printf("%d",zuida);
        system("pause");
        return 0;
}
[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表