📄 3220805_ce.cpp
字号:
#include<iostream.h>
#include <algorithm>
#include <memory.h>
using namespace std;
int value[26],customer[100],result[100000][8];
int i,j,k,l,temp,t,cou,valuesum=0,typesum=0,many=0,max=0;
int *p,*q;
void main()
{value[0]=0;
for(;;)
{
if (cin.eof()) break;
memset(result,0,sizeof(result));
memset(customer,0,sizeof(customer));
t=0;
cou=0;
temp=1;
i=1;
while(temp)
{
cin>>temp;
if(temp==value[i-1])
{
cou++;
if(cou<=4) value[i]=temp,t++,i++;
}
else cou=0,value[i]=temp,t++,i++;
}
t--;
cin>>temp;
for(i=0;temp;i++)
{
customer[i]=temp;cin>>temp;
}
p=value+1,q=value+t;
sort(p,q);
for(i=0;i<=t;i++)
for(j=i;j<=t;j++)
for(k=j;k<=t;k++)
for(l=k;l<=t;l++)
{typesum=0;
valuesum=value[i]+value[j]+value[k]+value[l];
if(l!=0) typesum++;
if(k!=0&&k!=l)typesum++;
if(j!=0&&j!=k)typesum++;
if(i!=0&&i!=j)typesum++;
many=(i!=0)+(j!=0)+(k!=0)+(l!=0);
max=value[l];
if(typesum>result[valuesum][0])
{result[valuesum][0]=typesum;
result[valuesum][1]=many;
result[valuesum][2]=max;
result[valuesum][3]=0;
result[valuesum][4]=value[i];
result[valuesum][5]=value[j];
result[valuesum][6]=value[k];
result[valuesum][7]=value[l];
}
else
if(typesum==result[valuesum][0])
{if(many<result[valuesum][1]){result[valuesum][0]=typesum;
result[valuesum][1]=many;result[valuesum][2]=max;result[valuesum][3]=0;
result[valuesum][4]=value[i];result[valuesum][5]=value[j];
result[valuesum][6]=value[k];result[valuesum][7]=value[l];
}
else
if(many==result[valuesum][1])
{
if(max>result[valuesum][2]) {
result[valuesum][0]=typesum; result[valuesum][1]=many;
result[valuesum][2]=max; result[valuesum][3]=0;
result[valuesum][4]=value[i]; result[valuesum][5]=value[j];
result[valuesum][6]=value[k]; result[valuesum][7]=value[l];
}
else
if(max=result[valuesum][2]) result[valuesum][3]=1;}
}
}
for(i=0;customer[i];i++)
{if(result[customer[i]][0]==0) cout<<customer[i]<<" ---- none";
else
if (result[customer[i]][3]!=1)
{
cout<<customer[i]<<" ("<<result[customer[i]][0]<<"): ";
if(result[customer[i]][4]!=0) cout<<result[customer[i]][4]<<" ";
if(result[customer[i]][5]!=0) cout<<result[customer[i]][5]<<" ";
if(result[customer[i]][6]!=0) cout<<result[customer[i]][6]<<" ";
cout<<result[customer[i]][7];
}
else cout<<customer[i]<<" ("<<result[customer[i]][0]<<"): tie";
cout<<endl;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -