|  | 
 
| 
题目在下, 不知道题解是什么意思 , 为什么这么写 , 求助
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 
 复制代码#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    int s=0;
    char c=getchar();
    while(c<'0'||c>'9')
    {
        c=getchar();
    }
    while(c>='0'&&c<='9')
    {
        s=(s<<3)+(s<<1)+(c^48);
        c=getchar();
    }
    return s;
}
int n;
int a[1000005];
int cnt[4005],ans[500005];
int main()
{
    n=read();
    for(int i=1;i<=n;i++)
    {
        a[i]=read();
        cnt[a[i]]++;
    }
    for(int i=2;i<=4000;i++)
    {
        int temp=0;
        for(int j=1;j<=i/2;j++)
        {
            if(j!=i-j) temp+=min(cnt[j],cnt[i-j]); // 这一行是什么意思
            else temp+=cnt[j]/2; // 还有这个
        }
        ans[temp]++;
    }
    for(int i=n/2;i>=1;i--)
    {
        if(ans[i]!=0)
        {
            printf("%d %d",i,ans[i]);
            return 0;   
        }       
    }
    return 0;
}
输入输出 :
 复制代码Sample Input 1
4
1 2 3 4
Sample Input 2
5
1 10 100 1000 2000
复制代码Output 1
2 1
Output 2
1 10
 回答有渔币 , 谢谢大家了 , 过两个月考试
 | 
 |