Submission #1767277


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

#define REP(i, a, b) for (int i = (a), i##_end_ = (b); i < i##_end_; ++i)
#define debug(...) fprintf(stderr, __VA_ARGS__)
#define mp make_pair
#define x first
#define y second
#define pb push_back
#define SZ(x) (int((x).size()))
#define ALL(x) (x).begin(), (x).end()

template<typename T> inline bool chkmin(T &a, const T &b) { return b < a ? a = b, 1 : 0; }
template<typename T> inline bool chkmax(T &a, const T &b) { return a < b ? a = b, 1 : 0; }

typedef long long LL;

const int oo = 0x3f3f3f3f;

const int maxn = 100100;

int n, qn;

pair<int, int> a[maxn + 5];

vector<pair<int, int> > all[maxn + 5];
int b[maxn + 5];

bool used[maxn + 5];

int sum[maxn + 5];

int Min[maxn + 5];

int dis[maxn + 5];

inline int init()
{
	memset(used, 0, sizeof used);
	set<pair<int, int> > cur;
	int ret = 0;
	sum[n + 1] = 0;
	for (int i = n; i >= 0; --i)
	{
		sum[i] += sum[i + 1];
		for (auto u : all[i]) --sum[i], cur.insert(u);
		while (sum[i] < i - n)
		{
			if (cur.empty() || cur.begin()->x >= i)
			{
				return -1;
			}
			++ret;
			++sum[i];
			--sum[cur.begin()->x];
			used[cur.begin()->y] = 1;
			cur.erase(*cur.begin());
		}
	}
	REP(i, 0, n + 1) sum[i] = 0;
	memset(Min, oo, sizeof Min);
	REP(i, 0, n - 1) 
		if (!used[i])
		{
			--sum[a[i].x];
			chkmin(Min[a[i].x], a[i].y);
		}
		else --sum[a[i].y];
	Min[n + 1] = oo;
	for (int i = n; i >= 0; --i)
	{
		chkmin(Min[i], Min[i + 1]);
	}
	for (int i = n - 1; i >= 0; --i) sum[i] += sum[i + 1];
	REP(i, 0, n + 1) sum[i] += n - i;
	vector<int> zeros;
	REP(i, 0, n + 1) if (!sum[i]) zeros.pb(i);
	memset(dis, oo, sizeof dis);
	dis[0] = 0;
	REP(i, 1, n + 1)
	{
		if (!sum[i]) 
		{
			if (Min[i] < i) chkmin(dis[i], dis[Min[i]] + 1);
		}
		else dis[i] = dis[i - 1];
	}
	return ret;
}

int main()
{
#ifdef matthew99
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	scanf("%d", &n);
	++n;
	REP(i, 0, n - 1) scanf("%d%d", &a[i].x, &a[i].y);
	REP(i, 0, n) scanf("%d", b + i);
	sort(b, b + n);
	REP(i, 0, n - 1) 
	{
		a[i].x = lower_bound(b, b + n, a[i].x) - b, a[i].y = lower_bound(b, b + n, a[i].y) - b;
		all[a[i].x].pb(mp(a[i].y, i));
	}

	scanf("%d", &qn);

	int A = init();
	if (!~A)
	{
		REP(i, 0, qn) printf("-1\n");
	}
	else
	{
		REP(i, 0, qn)
		{
			int x, y;
			scanf("%d%d", &x, &y);
			x = lower_bound(b, b + n, x) - b, y = lower_bound(b, b + n, y) - b;
			int ans = min(A + dis[x], A + 1 + dis[y]);
			if (ans >= oo) printf("-1\n");
			else printf("%d\n", n - ans);
		}
	}
	return 0;
}

Submission Info

Submission Time
Task F - Two Faced Cards
User matthew99
Language C++14 (GCC 5.4.1)
Score 2000
Code Size 2652 Byte
Status AC
Exec Time 156 ms
Memory 13684 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:98:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
                 ^
./Main.cpp:100:50: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  REP(i, 0, n - 1) scanf("%d%d", &a[i].x, &a[i].y);
                                                  ^
./Main.cpp:101:33: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  REP(i, 0, n) scanf("%d", b + i);
                                 ^
./Main.cpp:109:18: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &qn);
                  ^
./Main.cpp:121:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    sc...

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 2000 / 2000
Status
AC × 3
AC × 61
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt, subtask_1_49.txt, subtask_1_50.txt, subtask_1_51.txt, subtask_1_52.txt, subtask_1_53.txt, subtask_1_54.txt, subtask_1_55.txt
Case Name Status Exec Time Memory
sample_01.txt AC 2 ms 3584 KB
sample_02.txt AC 2 ms 3584 KB
sample_03.txt AC 2 ms 3584 KB
subtask_1_01.txt AC 67 ms 8576 KB
subtask_1_02.txt AC 71 ms 8876 KB
subtask_1_03.txt AC 36 ms 6144 KB
subtask_1_04.txt AC 63 ms 10104 KB
subtask_1_05.txt AC 45 ms 5932 KB
subtask_1_06.txt AC 99 ms 9504 KB
subtask_1_07.txt AC 64 ms 6528 KB
subtask_1_08.txt AC 92 ms 9592 KB
subtask_1_09.txt AC 91 ms 10964 KB
subtask_1_10.txt AC 56 ms 8316 KB
subtask_1_11.txt AC 34 ms 4736 KB
subtask_1_12.txt AC 50 ms 6400 KB
subtask_1_13.txt AC 71 ms 8268 KB
subtask_1_14.txt AC 41 ms 7164 KB
subtask_1_15.txt AC 50 ms 5632 KB
subtask_1_16.txt AC 32 ms 4736 KB
subtask_1_17.txt AC 134 ms 13428 KB
subtask_1_18.txt AC 33 ms 6908 KB
subtask_1_19.txt AC 40 ms 5248 KB
subtask_1_20.txt AC 105 ms 9324 KB
subtask_1_21.txt AC 156 ms 12416 KB
subtask_1_22.txt AC 142 ms 13556 KB
subtask_1_23.txt AC 156 ms 12416 KB
subtask_1_24.txt AC 141 ms 13556 KB
subtask_1_25.txt AC 144 ms 13556 KB
subtask_1_26.txt AC 141 ms 12692 KB
subtask_1_27.txt AC 68 ms 7040 KB
subtask_1_28.txt AC 142 ms 10196 KB
subtask_1_29.txt AC 144 ms 13556 KB
subtask_1_30.txt AC 141 ms 12692 KB
subtask_1_31.txt AC 68 ms 7040 KB
subtask_1_32.txt AC 143 ms 10196 KB
subtask_1_33.txt AC 145 ms 13556 KB
subtask_1_34.txt AC 140 ms 12692 KB
subtask_1_35.txt AC 67 ms 7040 KB
subtask_1_36.txt AC 140 ms 10196 KB
subtask_1_37.txt AC 142 ms 13684 KB
subtask_1_38.txt AC 137 ms 12692 KB
subtask_1_39.txt AC 68 ms 7040 KB
subtask_1_40.txt AC 140 ms 10196 KB
subtask_1_41.txt AC 148 ms 11520 KB
subtask_1_42.txt AC 121 ms 11648 KB
subtask_1_43.txt AC 129 ms 11648 KB
subtask_1_44.txt AC 120 ms 10752 KB
subtask_1_45.txt AC 58 ms 5632 KB
subtask_1_46.txt AC 143 ms 11392 KB
subtask_1_47.txt AC 114 ms 11392 KB
subtask_1_48.txt AC 121 ms 11392 KB
subtask_1_49.txt AC 114 ms 10752 KB
subtask_1_50.txt AC 52 ms 5376 KB
subtask_1_51.txt AC 2 ms 3584 KB
subtask_1_52.txt AC 2 ms 3584 KB
subtask_1_53.txt AC 2 ms 3584 KB
subtask_1_54.txt AC 2 ms 3584 KB
subtask_1_55.txt AC 2 ms 3584 KB