답안 #872021

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
872021 2023-11-12T06:32:16 Z vjudge1 Deda (COCI17_deda) C++17
40 / 140
168 ms 8084 KB
#include <bits/stdc++.h>
using namespace std;

#pragma GCC optimze("Ofast")
typedef long long ll;
typedef pair<int, int> pii;
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define len(x) (int) x.size()
#define pb push_back
mt19937 rnd(time(0));

struct query {
	char type;
	int a, b;
};

const int N = 2e5 + 7, SQ = 460, BLOCK = N / SQ + 7;
int n, q, box[BLOCK], c[N];
map<int, int> mp;
vector<query> qu;
vector<int> vec;

void read_input() {
	cin >> n >> q;
	for (int i = 0; i < q; i++) {
		query t;
		cin >> t.type >> t.a >> t.b;
		t.b--;
		vec.pb(t.a);
		qu.pb(t);
	}
}

void prepare() {
	sort(all(vec));
	vec.resize(unique(all(vec)) - vec.begin());
	for (int i = 0; i < len(vec); i++)
		mp[vec[i]] = i;
}

void solve() {
	for (int i = 0; i < BLOCK; i++)
		box[i] = INT_MAX;
	for (int i = 0; i < N; i++)
		c[i] = INT_MAX;
	for (int i = 0; i < q; i++) {
		char type = qu[i].type;
		int a = qu[i].a, b = qu[i].b;
		if (type == 'M') {
			box[b / SQ] = min(box[b / SQ], a);
			c[b] = a;
		}
		else {
			int ans = INT_MAX;
			int l = b, r = n;
			for (; l < r; ) {
				if (l % SQ || l + SQ > r) {
					if (c[l] <= a) {
						ans = l;
						break;
					}
					else
						l++;
				}
				else {
					if (box[l / SQ] <= a) {
						for (int j = l; j < l + SQ; j++)
							if (c[j] <= a) {
								ans = j;
							}
						break;
					}
					l += SQ;
				}
			}
			cout << (ans == INT_MAX? -1: ans + 1) << '\n';
		}
	}
}

int32_t main() {
	ios:: sync_with_stdio(0), cin.tie(0), cout.tie(0);
	read_input(), solve();
	return 0;
}

Compilation message

deda.cpp:4: warning: ignoring '#pragma GCC optimze' [-Wunknown-pragmas]
    4 | #pragma GCC optimze("Ofast")
      |
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1116 KB Output is correct
2 Correct 1 ms 1164 KB Output is correct
3 Incorrect 2 ms 1372 KB Output isn't correct
4 Incorrect 168 ms 7692 KB Output isn't correct
5 Incorrect 65 ms 7616 KB Output isn't correct
6 Incorrect 78 ms 8084 KB Output isn't correct
7 Incorrect 89 ms 7388 KB Output isn't correct