易错知识点:
1.sort函数的一般没有声明第三部分没有生命cmp函数的话是从小到大排序,声明cmp之后,他会按照对应的cmp规则进行排序比如
int cmp(int x, int t) { return x > y; }
就是按照从大到小的允许排列
2.排序区间,sort函数一般是(start, end, cmp)类似这样的使用方法,st,ed是排序区间,但是他这个区间是左闭右开的,
比如sort(a + 2, a + 6)的话就是从a的第三个元素开始,排序到a的第6个元素,也就是从a[2]排序到a[5]! ! !
#include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 10010; int a[N]; int cmp(int x, int y) { return x > y; } int main() { int n, m; cin >> n >> m; for(int i = 0; i < n; i ++ ) a[i] = i + 1; while(m --) { int q, p; cin >> p >> q; if(p == 0) sort(a, a + q, cmp); else sort(a + q - 1, a + n); } for(int i = 0; i < n; i ++)cout << a[i] << ' '; return 0; }