⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 ACM 第10125 題 Sumsets
💻 C
字号:
#include<stdio.h>
#include<stdlib.h>

int lev(int x)
{
    if(x==1)
        return x;
    else
        return x+lev(x-1);
}

int main()
{
    int iline;
    int iCount = 0;
    
    //freopen("input.txt","r",stdin);
    scanf("%d",&iline);
    
    while(iline!=0)
    {
        int i,j;
        int itemp;
        int itemp2 = 0 ,itemp3 = 0;
        int itemp4;
        int iFlag = 0;
        int ilev=lev(iline);
        int ielement[iline];/*element*/
        int iAdd[lev(iline)][3];/*abX*/
        int iSub[lev(iline)][3];/*dcY*/
        
        for(i=0;i<iline;i++)
        {
            scanf("%d",&itemp);
            ielement[i]=itemp;
            
        }
        for(i=0;i<iline;i++)
        {
            for(j=i+1;j<iline;j++)
            {
                iAdd[itemp2][0]=ielement[i];/*a*/
                iAdd[itemp2][1]=ielement[j];/*b*/
                iAdd[itemp2++][2]=ielement[i]+ielement[j];
            }
        }
        for(i=0;i<iline;i++)
        {
            for(j=i+1;j<iline;j++)
            {
                iSub[itemp3][0]=ielement[i];/*c*/
                iSub[itemp3][1]=ielement[j];/*d*/
                iSub[itemp3++][2]=ielement[j]-ielement[i];
            }
        }
        for(i=0;i<itemp2;i++)
        {
            for(j=0;j<itemp2-i-1;j++)
            {
                    if(iAdd[j][2]>iAdd[j+1][2])
                    {
                        itemp4=iAdd[j][2];
                        iAdd[j][2]=iAdd[j+1][2];
                        iAdd[j+1][2]=itemp4;
                        
                        itemp4=iAdd[j][0];
                        iAdd[j][0]=iAdd[j+1][0];
                        iAdd[j+1][0]=itemp4;
                        
                        itemp4=iAdd[j][1];
                        iAdd[j][1]=iAdd[j+1][1];
                        iAdd[j+1][1]=itemp4;
                    }
            }
        }
        iCount = 1;
        for(i=0;i<itemp2;i++)
        {
            for(j=0;j<itemp3;j++)
            {
                if(iAdd[i][2]==iSub[j][2])/*Y=X*/
                {
                    if(iAdd[i][0]!=iAdd[i][1]
                       &&iAdd[i][0]!=iSub[j][0]
                       &&iAdd[i][0]!=iSub[j][1]
                       &&iAdd[i][1]!=iSub[j][0]
                       &&iAdd[i][1]!=iSub[j][1]
                       &&iSub[j][0]!=iSub[j][1]
                       )
                    {
                        if(iCount==1)
                        {
                            iCount = 0;
                            iFlag = 2;
                            printf("%d",iSub[j][1]);
                        }
                    }
                }
            }
        }
        if(iFlag != 2)
        {
            printf("no solution");
        }
        
        iFlag = 0;
        scanf("%d",&iline);
    } 
    
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -