Submission #1230012


Source Code Expand

#include <iostream>
#include <cstdio>
#include <map>
#include <set>
#include <queue>
#include <vector>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#define rep(i,a,b) for(int i = a; i <= b; i++)
#define dep(i,a,b) for(int i = a; i >= b; i--) 
#define Rep(i,a) for(int i = 0; i < a; i++)
#define pb(a) push_back(a)
#define mp(a,b) make_pair(a,b)
#define ab(x) ((x) < 0 ? -(x) : (x))
using namespace std;
typedef long long LL;
typedef map<int, int>::iterator mit;
typedef set<int>::iterator sit;
typedef pair<int, int> pii;
#define x first
#define y second
const int N = 1e5 + 10, inf = 5e6 + 10;
bool haveans = true;
int n, c[N], d[N]; pii a[N];
bool side[N];
priority_queue<pii> q;
vector<pii> nd[N];

void init() {
	rep(i,1,n) 
		a[i].x = lower_bound(c + 1, c + (n + 1) + 1, a[i].x) - c,
		a[i].y = lower_bound(c + 1, c + (n + 1) + 1, a[i].y) - c;
}

int C[N];
int main() {
	scanf("%d",&n);
	rep(i,1,n) scanf("%d%d",&a[i].x,&a[i].y);
	rep(i,1,n + 1) scanf("%d",c + i);
	sort(c + 1, c + (n + 1) + 1);
	init();
	
	memset(side, true, sizeof(side));
	rep(i,1,n + 1) d[i] = 0;
	rep(i,1,n) d[a[i].x - 1]--;
	rep(i,1,n) nd[a[i].x - 1].pb(mp(-a[i].y, i));

	int delta = 0; d[n + 2] = n;
	dep(i,n + 1,1) {
		int len = nd[i].size(); Rep(j,len) q.push(nd[i][j]);
		d[i] += d[i + 1]; C[i] = d[i] - i;
		while (C[i] < -1) {
			if (q.empty() || -q.top().x > i) { haveans = false; break; }
			else {
				pii t = q.top(); q.pop(); side[t.y] = false;
				delta++, d[i]++, C[i]++, d[-t.x - 1]--;
			}
		}
	}
	
	rep(i,0,n + 1) d[i] = 0;
	rep(i,1,n) d[side[i] ? a[i].x : a[i].y]++;
	rep(i,1,n + 1) d[i] += d[i - 1], C[i] = d[i] - i;
	
	while (!q.empty()) q.pop();
	rep(i,1,n + 1) nd[i].clear();
	rep(i,1,n) if (side[i]) nd[a[i].y].pb(mp(a[i].x - 1, i));
	int cur = 0; static int f[N];
	
	rep(i,1,n + 1) {
		int len = nd[i].size(); Rep(j,len) q.push(nd[i][j]);
		f[i] = f[i - 1];
		if (C[i] == -1) {
			if (cur < i) {
				if (q.empty() || q.top().x < i) f[i] = inf;
				else {
					pii t = q.top(); q.pop(); 
					cur = t.x;
					f[i]++;
				}
			}
		}
	}
	
	int q; scanf("%d",&q);
	rep(i,1,q) {
		int a, b; scanf("%d%d",&a,&b);
		a = lower_bound(c + 1, c + (n + 1) + 1, a) - c;
		b = lower_bound(c + 1, c + (n + 1) + 1, b) - c;
		if (!haveans) printf("-1\n");
		else {
			int x = f[a - 1] + delta;
			int y = f[b - 1] + delta;
			int ans = min(x, y + 1);
			if (ans > n + 1) printf("-1\n");
			else printf("%d\n",n + 1 - ans);
		}
	}
	return 0;
}

Submission Info

Submission Time
Task F - Two Faced Cards
User WuHongxun
Language C++14 (GCC 5.4.1)
Score 2000
Code Size 2541 Byte
Status AC
Exec Time 149 ms
Memory 9844 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:38:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
                ^
./Main.cpp:39:42: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  rep(i,1,n) scanf("%d%d",&a[i].x,&a[i].y);
                                          ^
./Main.cpp:40:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  rep(i,1,n + 1) scanf("%d",c + i);
                                  ^
./Main.cpp:86:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  int q; scanf("%d",&q);
                       ^
./Main.cpp:88:32: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   int a, b; sca...

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 3 ms 3968 KB
sample_02.txt AC 3 ms 3968 KB
sample_03.txt AC 3 ms 3968 KB
subtask_1_01.txt AC 62 ms 6904 KB
subtask_1_02.txt AC 70 ms 7032 KB
subtask_1_03.txt AC 34 ms 5500 KB
subtask_1_04.txt AC 60 ms 7672 KB
subtask_1_05.txt AC 46 ms 5368 KB
subtask_1_06.txt AC 98 ms 7416 KB
subtask_1_07.txt AC 88 ms 7936 KB
subtask_1_08.txt AC 93 ms 7796 KB
subtask_1_09.txt AC 94 ms 8180 KB
subtask_1_10.txt AC 53 ms 6524 KB
subtask_1_11.txt AC 44 ms 5888 KB
subtask_1_12.txt AC 49 ms 5760 KB
subtask_1_13.txt AC 72 ms 6776 KB
subtask_1_14.txt AC 40 ms 5884 KB
subtask_1_15.txt AC 58 ms 6784 KB
subtask_1_16.txt AC 31 ms 4736 KB
subtask_1_17.txt AC 138 ms 9720 KB
subtask_1_18.txt AC 33 ms 5888 KB
subtask_1_19.txt AC 86 ms 6528 KB
subtask_1_20.txt AC 104 ms 7804 KB
subtask_1_21.txt AC 147 ms 9332 KB
subtask_1_22.txt AC 137 ms 9584 KB
subtask_1_23.txt AC 148 ms 9336 KB
subtask_1_24.txt AC 139 ms 9584 KB
subtask_1_25.txt AC 149 ms 9844 KB
subtask_1_26.txt AC 140 ms 9204 KB
subtask_1_27.txt AC 121 ms 8444 KB
subtask_1_28.txt AC 137 ms 8440 KB
subtask_1_29.txt AC 146 ms 9840 KB
subtask_1_30.txt AC 137 ms 9204 KB
subtask_1_31.txt AC 121 ms 8444 KB
subtask_1_32.txt AC 139 ms 8440 KB
subtask_1_33.txt AC 147 ms 9840 KB
subtask_1_34.txt AC 137 ms 9204 KB
subtask_1_35.txt AC 120 ms 8448 KB
subtask_1_36.txt AC 139 ms 8440 KB
subtask_1_37.txt AC 148 ms 9840 KB
subtask_1_38.txt AC 136 ms 9204 KB
subtask_1_39.txt AC 123 ms 8696 KB
subtask_1_40.txt AC 138 ms 8440 KB
subtask_1_41.txt AC 132 ms 9076 KB
subtask_1_42.txt AC 136 ms 9204 KB
subtask_1_43.txt AC 131 ms 9076 KB
subtask_1_44.txt AC 130 ms 8564 KB
subtask_1_45.txt AC 122 ms 8308 KB
subtask_1_46.txt AC 119 ms 8692 KB
subtask_1_47.txt AC 119 ms 8564 KB
subtask_1_48.txt AC 118 ms 8572 KB
subtask_1_49.txt AC 120 ms 8564 KB
subtask_1_50.txt AC 111 ms 8180 KB
subtask_1_51.txt AC 3 ms 3968 KB
subtask_1_52.txt AC 3 ms 3968 KB
subtask_1_53.txt AC 3 ms 3968 KB
subtask_1_54.txt AC 3 ms 3968 KB
subtask_1_55.txt AC 3 ms 3968 KB