为什么我写的题才20分 哪里出现了问题

img


为什么我写的题才20分 哪里出现了问题 不胜感激 谢谢大家帮助!!

你的代码中第二个循环i从3开始,就忽略两个数的和是第一个或第二个元素的情况。

#include <iostream>
#include <unordered_set>

using namespace std;

int main()
{
    int n;
    cin >> n;
    unordered_set<int> s;
    for (int i = 0; i < n; i++)
    {
        int a;
        cin >> a;
        s.insert(a);
    }
    int count = 0;
    for (auto it1 = s.begin(); it1 != s.end(); ++it1)
    {
        auto it2 = it1;
        ++it2;
        for (; it2 != s.end(); ++it2)
        {
            if (s.find(*it1 + *it2) != s.end())
                count++;
        }
    }
    cout << count;
    return 0;
}