用vector加lower_bound写的,但全WA了,求助大佬
查看原帖
用vector加lower_bound写的,但全WA了,求助大佬
196016
FANwry楼主2023/12/14 00:39
#include <bits/stdc++.h>
using namespace std;
vector<double> v;
long long int n, N = 5000000;

int main() {
	cin >> n;
	v.push_back(-N);
	v.push_back(N);
	for (long long int i = 1; i <= n; i++) {
		double op, len;
		cin >> op >> len;
		len = len / 100000;
		auto pos = lower_bound(v.begin(), v.end(), len);
		if (op == 1) {
			if (*pos == len) {
				cout << "Already Exist" << endl;
			} else {
				v.insert(pos, len);
			}
		} else {

			double r = *pos, l = *(pos - 1);
			double dr, dl;
			if (l == -N && r == N) {
				cout << "Empty" << endl;
			} else if (r == len) {
				long long int ans = len * 100000;
				cout << ans << endl;
				v.erase(pos);
			} else {
				dr = abs(len - r);
				dl = abs(l - len);
				//cout << dl << " " << dr;
				if (dr < dl) {
					long long int ans = r * 100000;
					cout << ans << endl;
					v.erase(pos);
				} else {
					long long int ans = l * 100000;
					cout << ans << endl;
					v.erase(pos - 1);
				}
			}
		}
	}
//	for (auto i : v) {
//		cout << i << " ";
//	}//vector的输出
}
2023/12/14 00:39
加载中...