题目描述:
在玩正整数。他手里有一个串,每次会实施三种操作中的一种。
#include
using namespace std;
int q[2000010];
int n;
int id;
int cnt = 1;
int h, t;
int main() {
freopen("middle.in", "r", stdin);
freopen("middle.out", "w",stdout);
scanf("%d", &n);
id = 1e6 + 1;
h = id, t = id + 1;
for(int i = 1; i <= n; i++) {
int op;
scanf("%d", &op);
if(op == 1) {
q[h] = cnt;
h--;
cnt++;
}
if(op == 2) {
q[t] = cnt;
t++;
cnt++;
}
if(op == 3) {
printf("%d\n", q[h + (int)(ceil((double)((t - h) / 2.0)))]);
}
}
// cout << h <<" " << t << endl;
// for(int i = h; i <= t; i++) {
// cout << q[i] << " ";
// }
return 0;
}