fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n,k,i,apple[500000],app[1000000],mini=1000001;
  6. app[0]=0;
  7. cin>>n>>k;
  8. for(i=0;i<n;i++)
  9. {
  10. cin>>apple[i];
  11. if(app[apple[i]]==0)
  12. app[apple[i]]=1000001;
  13. app[apple[i]]=min(app[apple[i]],min(i+1,n-i));
  14. // cout<<"app[apple[i]] "<<apple[i]<<" "<<app[apple[i]]<<endl;
  15. }
  16. for(i=0;i<n;i++)
  17. {
  18. if(k-apple[i]>0)
  19. {
  20. if(k-apple[i]!=apple[i] && app[k-apple[i]] && mini>max(app[apple[i]],app[k-apple[i]]))
  21. {
  22. mini=max(app[apple[i]],app[k-apple[i]]);
  23. }
  24. }
  25. }
  26.  
  27. mini<1000001?cout<<mini:cout<<"-1" ;
  28. return 0;
  29. }
Success #stdin #stdout 0s 8464KB
stdin
15 17
1 6 4 5 8 7 8 6 4 6 5 4  9 9 3 
stdout
5