Submission #2121876


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

const int N = 100005;

int n, m, q;
int a[N];
vector<int> vec[N];
priority_queue < pair<int, int> > pq;
int last[N];
bool del[N];

// BIT
int T[N];
void upd(int x) { for (; x <= m; x += x & -x) T[x]++; }
int get(int x) { int ret = 0; for (; x > 0; x -= x & -x) ret += T[x]; return ret; }
int get_min() {
	int low = 1, high = m;
	while(low < high) {
		int mid = ((low + high) >> 1);
		if (get(mid) == mid) low = mid + 1;
		else high = mid;
	}
	return low;
}

int main() {
	ios_base::sync_with_stdio(false); cin.tie(0);
	cin >> n >> m >> q;
	for (int i = 1; i <= q; ++i) {
		cin >> a[i];
		pq.push(make_pair(i, a[i]));
		vec[a[i]].push_back(i);
	}
	for (int i = 1; i <= n; ++i) last[i] = q + 1;

	while(!pq.empty()) {
		pair<int, int> top = pq.top(); pq.pop();
		if (del[top.second]) continue;
		int x = top.second;
		del[x] = true;

		int ptr = n;
		while(ptr >= 1 && !vec[x].empty()) {
			int pos = vec[x].back();
			vec[x].pop_back();
			if (last[ptr] > pos) last[ptr] = pos, --ptr;
		}
		// cerr << x << endl;
		// for (int i = 1; i <= n; ++i) cerr << last[i] << ' '; cerr << endl;
		
		if (ptr != 0) { // invalid
			int smallest = get_min();
			if (x != smallest) return cout << "No\n", 0;
			upd(x); // delete x

			while(!pq.empty()) {
				top = pq.top(); pq.pop();
				int nx = top.second;
				if (del[nx]) continue;

				del[nx] = true;
				smallest = get_min();
				if (nx != smallest) return cout << "No\n", 0;
				upd(nx);
			}

			return cout << "Yes\n", 0;
		}

		upd(x); // delete x
	}

	cout << "Yes\n";
}

Submission Info

Submission Time
Task E - LRU Puzzle
User cheater2k
Language C++14 (GCC 5.4.1)
Score 1200
Code Size 1640 Byte
Status AC
Exec Time 44 ms
Memory 7796 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1200 / 1200
Status
AC × 4
AC × 76
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt, 1_47.txt, 1_48.txt, 1_49.txt, 1_50.txt, 1_51.txt, 1_52.txt, 1_53.txt, 1_54.txt, 1_55.txt, 1_56.txt, 1_57.txt, 1_58.txt, 1_59.txt, 1_60.txt, 1_61.txt, 1_62.txt, 1_63.txt, 1_64.txt, 1_65.txt, 1_66.txt, 1_67.txt, 1_68.txt, 1_69.txt, 1_70.txt, 1_71.txt
Case Name Status Exec Time Memory
0_00.txt AC 2 ms 2560 KB
0_01.txt AC 2 ms 2560 KB
0_02.txt AC 2 ms 2560 KB
0_03.txt AC 2 ms 2560 KB
1_00.txt AC 2 ms 2560 KB
1_01.txt AC 2 ms 2560 KB
1_02.txt AC 18 ms 5108 KB
1_03.txt AC 18 ms 5108 KB
1_04.txt AC 18 ms 5108 KB
1_05.txt AC 13 ms 5108 KB
1_06.txt AC 44 ms 7796 KB
1_07.txt AC 44 ms 7796 KB
1_08.txt AC 44 ms 7796 KB
1_09.txt AC 44 ms 7796 KB
1_10.txt AC 25 ms 5620 KB
1_11.txt AC 25 ms 5620 KB
1_12.txt AC 23 ms 5620 KB
1_13.txt AC 19 ms 5496 KB
1_14.txt AC 26 ms 5620 KB
1_15.txt AC 26 ms 5620 KB
1_16.txt AC 26 ms 5620 KB
1_17.txt AC 19 ms 5364 KB
1_18.txt AC 40 ms 6900 KB
1_19.txt AC 28 ms 5748 KB
1_20.txt AC 39 ms 6772 KB
1_21.txt AC 22 ms 7284 KB
1_22.txt AC 40 ms 6900 KB
1_23.txt AC 30 ms 5748 KB
1_24.txt AC 41 ms 7028 KB
1_25.txt AC 28 ms 6004 KB
1_26.txt AC 20 ms 4596 KB
1_27.txt AC 14 ms 4468 KB
1_28.txt AC 21 ms 4600 KB
1_29.txt AC 17 ms 4600 KB
1_30.txt AC 20 ms 4852 KB
1_31.txt AC 16 ms 4980 KB
1_32.txt AC 20 ms 4852 KB
1_33.txt AC 17 ms 4980 KB
1_34.txt AC 30 ms 5236 KB
1_35.txt AC 22 ms 5492 KB
1_36.txt AC 29 ms 4980 KB
1_37.txt AC 21 ms 5236 KB
1_38.txt AC 35 ms 6132 KB
1_39.txt AC 23 ms 6516 KB
1_40.txt AC 37 ms 6260 KB
1_41.txt AC 23 ms 6772 KB
1_42.txt AC 19 ms 4596 KB
1_43.txt AC 18 ms 4596 KB
1_44.txt AC 20 ms 4596 KB
1_45.txt AC 15 ms 4596 KB
1_46.txt AC 22 ms 4728 KB
1_47.txt AC 17 ms 4724 KB
1_48.txt AC 22 ms 4728 KB
1_49.txt AC 17 ms 4980 KB
1_50.txt AC 21 ms 4600 KB
1_51.txt AC 14 ms 4468 KB
1_52.txt AC 23 ms 4724 KB
1_53.txt AC 16 ms 4600 KB
1_54.txt AC 22 ms 4596 KB
1_55.txt AC 14 ms 4468 KB
1_56.txt AC 28 ms 4980 KB
1_57.txt AC 18 ms 4724 KB
1_58.txt AC 18 ms 4340 KB
1_59.txt AC 13 ms 4468 KB
1_60.txt AC 18 ms 4344 KB
1_61.txt AC 13 ms 4344 KB
1_62.txt AC 19 ms 4596 KB
1_63.txt AC 12 ms 4596 KB
1_64.txt AC 18 ms 4468 KB
1_65.txt AC 15 ms 4344 KB
1_66.txt AC 18 ms 4980 KB
1_67.txt AC 12 ms 4852 KB
1_68.txt AC 18 ms 4980 KB
1_69.txt AC 13 ms 4980 KB
1_70.txt AC 18 ms 4984 KB
1_71.txt AC 15 ms 4840 KB