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 |
|
|
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 |