/* وَقُلْ رَبِّ زِدْنِي عِلْمًاً */
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <iomanip>
#include <stack>
#include <queue>
#include <vector>
#include <fstream>
#include <cctype>
#include <utility>
#define ll long long
#define ld long double
#define sz(v) ((int)(v).size())
#define all(v) ((v).begin()),((v).end())
#define setp(n) cout << fixed << setprecision(n)
#define O_o ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define fi(nn) for(ll i = 0; i < (nn); i++)
#define fj(nn) for(ll j = 0; j < (nn); j++)
#define fl(nn) for (ll i = nn - 1; i >= 0; i--)
#define ffi(nn,mm) for(ll i = 0; i < (nn); i++)for(ll j = 0; j < (mm); j++)
#define wt ll t;cin>>t;while(t--)
#define null NULL
using namespace std;
int main()
{
O_o
ll n;
cin >> n;
ll sum = 0;
vector<pair<ll, ll>>v(n);
fi(n) {
cin >> v[i].first;
sum += v[i].first;
v[i].second = i + 1;
}
sort(v.begin(), v.end());
vector<ll>nums;
ll maxi1 = v[n - 1].first, maxi2 = v[n - 2].first;
fi(n) {
ll mod = sum - v[i].first;
if (mod == 2 * maxi1 && v[i].first != maxi1) {
nums.push_back(v[i].second);
}
else if (mod == 2 * maxi2 && v[i].first == maxi1) {
nums.push_back(v[i].second);
}
}
cout << sz(nums) << '\n';
fi(sz(nums)) {
cout << nums[i] << ' ';
}
return 0;
}
Lyog2YjZjtmC2Y/ZhNmSINix2Y7YqNmR2ZAg2LLZkNiv2ZLZhtmQ2Yog2LnZkNmE2ZLZhdmL2KfZiyAqLwojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGNjdHlwZT4KI2luY2x1ZGUgPHV0aWxpdHk+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgc3oodikgICAoKGludCkodikuc2l6ZSgpKQojZGVmaW5lIGFsbCh2KSAgICAoKHYpLmJlZ2luKCkpLCgodikuZW5kKCkpCiNkZWZpbmUgc2V0cChuKSBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbihuKQojZGVmaW5lIE9fbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiNkZWZpbmUgeWVzIGNvdXQgPDwgIllFU1xuIgojZGVmaW5lIG5vIGNvdXQgPDwgIk5PXG4iCiNkZWZpbmUgZmkobm4pIGZvcihsbCBpID0gMDsgaSA8IChubik7IGkrKykKI2RlZmluZSBmaihubikgZm9yKGxsIGogPSAwOyBqIDwgKG5uKTsgaisrKQojZGVmaW5lIGZsKG5uKSBmb3IgKGxsIGkgPSBubiAtIDE7IGkgPj0gMDsgaS0tKQojZGVmaW5lIGZmaShubixtbSkgZm9yKGxsIGkgPSAwOyBpIDwgKG5uKTsgaSsrKWZvcihsbCBqID0gMDsgaiA8IChtbSk7IGorKykKI2RlZmluZSB3dCBsbCB0O2Npbj4+dDt3aGlsZSh0LS0pCiNkZWZpbmUgbnVsbCBOVUxMCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpCnsKICAgIE9fbwogICAgICAgIGxsIG47CiAgICBjaW4gPj4gbjsKICAgIGxsIHN1bSA9IDA7CiAgICB2ZWN0b3I8cGFpcjxsbCwgbGw+PnYobik7CiAgICBmaShuKSB7CiAgICAgICAgY2luID4+IHZbaV0uZmlyc3Q7CiAgICAgICAgc3VtICs9IHZbaV0uZmlyc3Q7CiAgICAgICAgdltpXS5zZWNvbmQgPSBpICsgMTsKICAgIH0KICAgIHNvcnQodi5iZWdpbigpLCB2LmVuZCgpKTsKICAgIHZlY3RvcjxsbD5udW1zOwogICAgbGwgbWF4aTEgPSB2W24gLSAxXS5maXJzdCwgbWF4aTIgPSB2W24gLSAyXS5maXJzdDsKICAgIGZpKG4pIHsKICAgICAgICBsbCBtb2QgPSBzdW0gLSB2W2ldLmZpcnN0OwogICAgICAgIGlmIChtb2QgPT0gMiAqIG1heGkxICYmIHZbaV0uZmlyc3QgIT0gbWF4aTEpIHsKICAgICAgICAgICAgbnVtcy5wdXNoX2JhY2sodltpXS5zZWNvbmQpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChtb2QgPT0gMiAqIG1heGkyICYmIHZbaV0uZmlyc3QgPT0gbWF4aTEpIHsKICAgICAgICAgICAgbnVtcy5wdXNoX2JhY2sodltpXS5zZWNvbmQpOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgc3oobnVtcykgPDwgJ1xuJzsKICAgIGZpKHN6KG51bXMpKSB7CiAgICAgICAgY291dCA8PCBudW1zW2ldIDw8ICcgJzsKICAgIH0KICAgIHJldHVybiAwOwp9