Advertisement
ktagir

BufferVar

Nov 22nd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <vector>
  4. #include <lm.h>
  5.  
  6. using namespace std;
  7.  
  8. struct Book{
  9.     int x = 0;
  10.     int p = 0;
  11.     int ap = 0;
  12.     void setAP(){
  13.         ap = abs(p);
  14.     }
  15.     void operator =(Book& right){
  16.         x = right.x;
  17.         p = right.p;
  18.         ap = right.ap;
  19.     }
  20. };
  21.  
  22. void sort(vector<Book> array, int start, int end){
  23.     int middle = start + (end - start)/2;
  24.     vector<Book> leftSide;
  25.     vector<Book> rightSide;
  26.     for(int i = start; i <=end; i++){
  27.        if(array[i].x < array[middle].x){
  28.            leftSide.push_back(array[i]);
  29.        }else{
  30.            rightSide.push_back(array[i]);
  31.        }
  32.     }
  33.     for(int i = 0,q = start; i < middle; i+=1,q+=1){
  34.         array[q] = leftSide[i];
  35.     }
  36.     for(int i = 0,q = middle; q <= end; i+=1,q+=1){
  37.         array[q] = rightSide[i];
  38.     }
  39.     sort(array,start,middle-1);
  40.     sort(array,middle,end);
  41. }
  42.  
  43. int main() {
  44.     //Объявление и инициализация переменных
  45.     vector <Book> books;
  46.     int countBooks = 0;
  47.     //Конец
  48.     cin >> countBooks;
  49.     books.resize(countBooks);
  50.     for(int i = 0; i < countBooks; i += 1){
  51.         cin >> books[i].p;
  52.         books[i].setAP();
  53.     }//Подсчет X
  54.     for(int i = 0; i < countBooks; i += 1){
  55.         for(int q = 0; q < countBooks; q += 1){
  56.             books[i].x += abs(books[i].p - books[q].p);
  57.         }
  58.     }//Конец
  59.     sort(books,0,countBooks+1);
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement