fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n;
  4. long long int a[100005];
  5.  
  6. int main()
  7. {
  8. int t;
  9. scanf("%d",&t);
  10. while(t--)
  11. { scanf("%d",&n);
  12. long long int sum=0;
  13. for(int i=1;i<=n;i++)
  14. {
  15. scanf("%lld",&a[i]);
  16. sum+=a[i];
  17. }
  18.  
  19.  
  20. if(n==2)
  21. { printf("%lld\n",min(a[1],a[2]));
  22. }
  23. else
  24. {
  25.  
  26. set<long long int> s;
  27. for(int i=1;i<=n;i++)
  28. { long long int A,D;
  29. if(i==1)
  30. { A=a[i+1];
  31. D=a[i+2]-a[i+1];
  32. sum-=a[i];
  33. if((a[n]==(A+D*(n-2)))&&(sum==(((n-1)*(A+a[n]))/2)))
  34. { s.insert(a[i]);
  35. }
  36. sum+=a[i];
  37.  
  38. }
  39. else if(i==n)
  40. { A=a[1];
  41. D=a[i-1]-a[i-2];
  42. sum-=a[i];
  43. if((a[i-1]==(A+D*(n-2)))&&(sum==(((n-1)*(2*A+(n-2)*D))/2)))
  44. {
  45. s.insert(a[i]);
  46. }
  47. sum+=a[i];
  48. }
  49. else
  50. { A=a[1];
  51. D=a[i+1]-a[i-1];
  52. sum-=a[i];
  53. if((a[n]==(A+D*(n-2)))&&(sum==(((n-1)*(2*A+(n-2)*D))/2)))
  54. { s.insert(a[i]);
  55. }
  56. sum+=a[i];
  57. }
  58. }
  59. if(s.empty())
  60. { printf("-1\n");
  61. }
  62. else
  63. { set<long long int>:: iterator it;
  64. it=s.begin();
  65. printf("%lld\n",*it);
  66. }
  67. }
  68. }
  69. return 0;
  70. }
Success #stdin #stdout 0s 4256KB
stdin
1
7
2 3 6 8 13 15 18
stdout
2