暴力全 WA 求助
查看原帖
暴力全 WA 求助
255169
__LePetitPrince__楼主2023/8/22 23:11
#include <iostream>
using namespace std;
int T, op, x, n;
int maxn = -1, minn = 0x7fffffff;
int a[10005];
int mfind(int x) {
	for (int i = 1; i <= n; i++) {
		if (a[i] == x) {
			return i;
		}
	}
	return 0;
}
int mfind2(int x) {
	for (int i = 1; i <= n; i++) {
		if (a[i] == x) {
			while (a[i] == x && i <= n) {
				i++;
			}
			return i - 1;
		}
	}
	return 0;
}
int findm(int x) {
	for (int i = 1; i <= n; i++) {
		if (a[i] > x) {
			return i;
		}
	}
	return n + 1;
}
int main() {
	cin >> T;
	while (T--) {
		cin >> op >> x;
		if (op == 1) {
			cout << mfind(x) << endl;
		} else if (op == 2) {
			cout << a[x] << endl;
		} else if (op == 3) {
			int ff = mfind(x);
			if (x == minn || !ff) {
				cout << -2147483647 << endl;
			} else {
				cout << a[ff - 1] << endl;
			}
		} else if (op == 4) {
			int ff = mfind2(x);
			if (x == maxn || !ff) {
				cout << 2147483647 << endl;
			} else {
				cout << a[ff + 1] << endl;
			}
		} else {
			int ff = findm(x);
			n++;
			for (int i = n - 1; i >= ff; i--) {
				a[i + 1] = a[i];
			}
			a[ff] = x;/*
			for (int i = 1; i <= n; i++) {
				cout << a[i] << ' ';
			}
			cout << endl;*/
			maxn = max(maxn, x);
			minn = min(minn, x); 
		}
	}
	return 0;
}
2023/8/22 23:11
加载中...