Advertisement
Guest User

Desk ordering 50/100

a guest
Mar 24th, 2018
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void massimi (int &x , int &y, multiset <int> vet){
  4. multiset <int>::reverse_iterator it=vet.rbegin();
  5. x=*it;
  6. it++;
  7. y=*it;
  8. }
  9.  
  10. int main(){
  11. ifstream fin ("input.txt");
  12. ofstream fout("output.txt");
  13. int n,k,m1,m2,best,tmp,i;
  14. fin>>n;
  15. fin>>k;
  16. multiset <int> vet;
  17. queue <int> coda;
  18. for(i=0;i<k;i++){
  19. fin>>tmp;
  20. vet.insert(tmp);
  21. coda.push(tmp);
  22. }
  23. massimi(m1,m2,vet);
  24. best= (m1-m2)/2;
  25. for( ; i<n;i++){
  26. fin>>tmp;
  27. coda.push(tmp);
  28. vet.insert(tmp);
  29. vet.erase(coda.front());
  30. coda.pop();
  31. if(tmp > m2 ){
  32. massimi(m1,m2,vet);
  33. if(best > (m1-m2)/2)best=(m1-m2)/2;
  34. }else{
  35. if( vet.count(m1)==0 || vet.count(m2)==0){
  36. massimi(m1,m2,vet);
  37. if(best > (m1-m2)/2)best=(m1-m2)/2;
  38. }
  39. }
  40. }
  41. fout<<best;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement