fork download
  1. /* وَقُلْ رَبِّ زِدْنِي عِلْمًاً */
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <cmath>
  5. #include <string>
  6. #include <iomanip>
  7. #include <stack>
  8. #include <queue>
  9. #include <vector>
  10. #include <fstream>
  11. #include <cctype>
  12. #include <utility>
  13.  
  14. #define ll long long
  15. #define ld long double
  16. #define sz(v) ((int)(v).size())
  17. #define all(v) ((v).begin()),((v).end())
  18. #define setp(n) cout << fixed << setprecision(n)
  19. #define O_o ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  20. #define yes cout << "YES\n"
  21. #define no cout << "NO\n"
  22. #define fi(nn) for(ll i = 0; i < (nn); i++)
  23. #define fj(nn) for(ll j = 0; j < (nn); j++)
  24. #define fl(nn) for (ll i = nn - 1; i >= 0; i--)
  25. #define ffi(nn,mm) for(ll i = 0; i < (nn); i++)for(ll j = 0; j < (mm); j++)
  26. #define wt ll t;cin>>t;while(t--)
  27. #define null NULL
  28.  
  29. using namespace std;
  30. int main()
  31. {
  32. O_o
  33. ll n;
  34. cin >> n;
  35. ll sum = 0;
  36. vector<pair<ll, ll>>v(n);
  37. fi(n) {
  38. cin >> v[i].first;
  39. sum += v[i].first;
  40. v[i].second = i + 1;
  41. }
  42. sort(v.begin(), v.end());
  43. vector<ll>nums;
  44. ll maxi1 = v[n - 1].first, maxi2 = v[n - 2].first;
  45. fi(n) {
  46. ll mod = sum - v[i].first;
  47. if (mod == 2 * maxi1 && v[i].first != maxi1) {
  48. nums.push_back(v[i].second);
  49. }
  50. else if (mod == 2 * maxi2 && v[i].first == maxi1) {
  51. nums.push_back(v[i].second);
  52. }
  53. }
  54. cout << sz(nums) << '\n';
  55. fi(sz(nums)) {
  56. cout << nums[i] << ' ';
  57. }
  58. return 0;
  59. }
Success #stdin #stdout 0.01s 5292KB
stdin
5
1 2 2 2 5
stdout
3
2 3 4