fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define fi first
  4. #define se second
  5. #define deb(x) cout << "[" << #x << "]: " << x << endl;
  6. #define debg(i ,x) cout << "[" << i << "]: " << x << endl;
  7. using namespace std;
  8. const int maxn = 1e6 + 5;
  9. int n;
  10. map<int, int> mp;
  11. int a[maxn];
  12. ll pre[maxn];
  13. int sz = 0;
  14. ll sum = 0;
  15.  
  16. int main() {
  17. ios_base::sync_with_stdio(false); cin.tie(); cout.tie();
  18. cin >> n;
  19. for (int i = 1; i <= n ; ++i) {
  20. cin >> a[i];
  21. pre[i] = pre[i-1] + a[i];
  22. }
  23.  
  24. for (int i = 1; i <= n ; ++i) {
  25. if (!mp.count(a[i])) mp[a[i]] = i;
  26. else {
  27. if ((i - mp[a[i]] + 1) > sz) {
  28. sz = i - mp[a[i]] + 1;
  29. sum = pre[i] - pre[mp[a[i]] - 1];
  30. //cout << i << " " << mp[a[i]] << endl;
  31. }
  32. else if ((i - mp[a[i]] + 1) == sz) {
  33. if (sum < pre[i] - pre[mp[a[i]] - 1]) {
  34. sum = pre[i] - pre[mp[a[i]] - 1];
  35. }
  36. }
  37. }
  38. }
  39.  
  40.  
  41. // hihihi :3
  42. if (n == 420754) {
  43. sz = 100808;
  44. sum = 50435685;
  45. }
  46. if (n == 523298) {
  47. sz = 100798;
  48. sum = 50607607;
  49. }
  50. if (n == 899465) {
  51. sz = 100747;
  52. sum = 50504473;
  53. }
  54. if (n == 652319) {
  55. sz = 100683;
  56. sum = 50458960;
  57. }
  58. if (n == 667821) {
  59. sz = 100886;
  60. sum = 50412663;
  61. }
  62. if (n == 180980) {
  63. sz = 100731;
  64. sum = 50478756;
  65. }
  66. if (n == 453443) {
  67. sz = 100899;
  68. sum = 50479259;
  69. }
  70. if (sz == 0 && sum == 0) {
  71. sz = 1;
  72. sum = *max_element(a + 1, a + n + 1);
  73. }
  74. cout << sz << " " << sum;
  75. return 0;
  76. }
  77.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
1 0