#求助
查看原帖
#求助
420063
ARTL楼主2021/2/1 16:56
#include <iostream>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;
int main()
{
    int n,a[105],res=0,pos=0;
    memset(a,0,sizeof(a));
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    sort(a,a+n);
    bool b[105];
    memset(b,0,sizeof(b));
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            pos=a[i]+a[j];
            for(int k=j+1;k<n;k++){
                if(a[k]==pos&&b[pos]==0){
                    res++;
                    b[pos]=true;
                }
            }
        }
    }
    cout<<res<<endl;
    return 0;
}

两个超时一个错误。。。我个人认为用sort之后能够不要记录加数和被加数,省下了另做标记的时间,会是这两个sort超了时吗?还有哪里可以改进的地方吗?谢谢大佬[鞠躬]!

2021/2/1 16:56
加载中...