Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- void incut(int* x, int* y, int start , int finish)
- {
- for(int i = start; i < finish; ++ i)
- {
- int a = x[i];
- int b = y[i];
- int j = i - 1;
- for(;j >= start - 1 && a < x[j] ; --j)
- {
- x[j+1] = x[j];
- y[j+1] = y[j];
- }
- x[j+1] = a;
- y[j+1] = b;
- }
- }
- int main()
- {
- int n;
- std::cin >> n;
- int X[n];
- int Y[n];
- for(int i = 0; i < n; ++ i)
- {
- std::cin >> X[i];
- std::cin >> Y[i];
- }
- incut(X , Y , 1 , n);
- int start = 0;
- int finish = 0;
- while(start < n)
- {
- while(finish < n && X[finish] == X[finish + 1])
- {
- ++finish;
- }
- incut(Y , X , start + 1 , finish + 1);
- ++finish;
- start = finish;
- }
- for(int i = 0; i < n; ++ i)
- {
- std::cout << X[i] << " " << Y[i] << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement