1101 gamblers.txt

来自「浙江大学ACM练习题 1101 提交通过原代码」· 文本 代码 · 共 59 行

TXT
59
字号
#include <iostream> 
#include <algorithm>
using namespace std;
 
int c[1024];

bool opot(int c[],int h,int r,int t) 
{ 
    int mid; 
    if (h>r) 
  return false; 
    mid=(r-h)/2+h;     
    if (c[mid]>t) 
        return opot(c,h,mid-1,t);
    else if (c[mid]<t)
        return opot(c,mid+1,r,t);     
    else 
  return true;
}   
 
int main() 
{     
    int n,i,j,k,t,win; 
    bool flag; 

    while (cin>>n && n!=0) 
    {         
        for (i=0;i<n;i++) 
            cin>>c[i];     
        sort(c,c+n);     
        flag=false;     
        for (i=n-1;i>=0;i--)     
            for(j=n-1;j>=0;j--)     
            {                 
                if (c[j]+c[0]+c[1]>c[i]) continue;     
                if (j!=i)                 
                    for (k=j-1;k>=0;k--)     
                    {                     
                        if (k!=i)             
                        {                         
                            t=c[i]-c[j]-c[k];     
                            if (opot(c,0,k-1,t))     
                            {                             
                                flag=true;                     
                                win=i;                         
                                goto output;                 
                            }                     
                        }             
                    }             
            }
          output:         
            if (flag) cout<<c[win]<<endl;     
            else cout<<"no solution"<<endl; 
    }     
    return 0;
} 


⌨️ 快捷键说明

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