Submission #1712573
Source Code Expand
#include<set>
#include<map>
#include<deque>
#include<queue>
#include<stack>
#include<cmath>
#include<ctime>
#include<bitset>
#include<string>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<climits>
#include<complex>
#include<iostream>
#include<algorithm>
#define ll long long
#define inf 1000000000
using namespace std;
const int maxn = 210000;
int n,m;
int A[maxn],B[maxn],C[maxn];
struct node{int x,i;};
inline bool operator <(const node x,const node y){return x.x<y.x;}
set<node>S;
set<node>::iterator it;
int p[maxn],q[maxn];
struct L{int l,i;};
vector<L>vl[maxn];
inline bool operator <(const L x,const L y){return x.l>y.l;}
priority_queue<L>q1;
struct R{int r,i;};
vector<R>vr[maxn];
inline bool operator <(const R x,const R y){return x.r<y.r;}
priority_queue<R>q2;
bool use[maxn],flag;
int ans[maxn],re;
int solve(const int k,const int ad){ return ans[k]==-1?-1:n-ans[k]+ad; }
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d",&A[i],&B[i]);
for(int i=0;i<=n;i++) scanf("%d",&C[i]); sort(C,C+n+1);
for(int i=0;i<=n;i++) if(!i||C[i]!=C[i-1]) S.insert((node){C[i],i});
S.insert((node){inf+1,n+1});
for(int i=1;i<=n;i++)
{
it=S.lower_bound((node){A[i],0});
A[i]=(*it).i; p[A[i]]++;
it=S.lower_bound((node){B[i],0});
B[i]=(*it).i;
if(A[i]>B[i])
{
swap(A[i],B[i]); B[i]--;
vl[B[i]].push_back((L){A[i],i});
vr[A[i]].push_back((R){B[i],i});
}
}
for(int i=0;i<=n;i++) p[i]--;
for(int i=1;i<=n+1;i++) p[i]+=p[i-1];
int ad=0;
for(int i=n+1;i>=0;i--)
{
ad+=q[i]; p[i]+=ad; q[i]=0;
for(int j=0;j<vl[i].size();j++) q1.push(vl[i][j]);
if(p[i]<-1&&i!=n+1)
{
while(!q1.empty()&&p[i]<-1)
{
const L now=q1.top(); q1.pop();
if(now.l>i) break;
use[now.i]=true;
p[i]++; ad++; if(now.l) q[now.l-1]--;
if(B[now.i]>i) q[i+1]++,q[B[now.i]+1]--;
re++;
}
if(p[i]<-1) { flag=true; break; }
}
}
if(flag) for(int i=0;i<=n+1;i++) ans[i]=-1;
else
{
ad=0;
for(int i=0;i<=n;i++) ad+=q[i],q[i]=0,p[i]+=ad;
ad=0;
for(int i=0;i<=n;i++)
{
ans[i]=re;
ad+=q[i]; p[i]+=ad;
for(int j=0;j<vr[i].size();j++) if(!use[vr[i][j].i]) q2.push(vr[i][j]);
if(p[i]<0)
{
while(!q2.empty()&&p[i]<0)
{
const R now=q2.top(); q2.pop();
if(now.r<i) break;
ad++; p[i]++; q[now.r+1]--;
re++;
}
if(p[i]<0)
{
for(int j=i+1;j<=n+1;j++) ans[j]=-1;
break;
}
}
}
if(ans[n+1]!=-1) ans[n+1]=re;
}
scanf("%d",&m);
while(m--)
{
int x,y; scanf("%d%d",&x,&y);
it=S.lower_bound((node){x,0}); x=(*it).i;
it=S.lower_bound((node){y,0}); y=(*it).i;
printf("%d\n",max(solve(x,1),solve(y,0)));
}
return 0;
}
Submission Info
Submission Time |
|
Task |
F - Two Faced Cards |
User |
lichangdongtw |
Language |
C++14 (GCC 5.4.1) |
Score |
2000 |
Code Size |
2824 Byte |
Status |
AC |
Exec Time |
327 ms |
Memory |
26612 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:49:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^
./Main.cpp:50:49: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
for(int i=1;i<=n;i++) scanf("%d%d",&A[i],&B[i]);
^
./Main.cpp:51:41: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
for(int i=0;i<=n;i++) scanf("%d",&C[i]); sort(C,C+n+1);
^
./Main.cpp:123:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&m);
^
./Main.cpp:126:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-W...
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 |
5 ms |
13568 KB |
sample_02.txt |
AC |
5 ms |
13568 KB |
sample_03.txt |
AC |
5 ms |
13568 KB |
subtask_1_01.txt |
AC |
92 ms |
18812 KB |
subtask_1_02.txt |
AC |
110 ms |
20344 KB |
subtask_1_03.txt |
AC |
48 ms |
16256 KB |
subtask_1_04.txt |
AC |
98 ms |
22136 KB |
subtask_1_05.txt |
AC |
65 ms |
16508 KB |
subtask_1_06.txt |
AC |
164 ms |
22136 KB |
subtask_1_07.txt |
AC |
163 ms |
24320 KB |
subtask_1_08.txt |
AC |
169 ms |
24316 KB |
subtask_1_09.txt |
AC |
157 ms |
23416 KB |
subtask_1_10.txt |
AC |
88 ms |
20344 KB |
subtask_1_11.txt |
AC |
77 ms |
19200 KB |
subtask_1_12.txt |
AC |
79 ms |
18684 KB |
subtask_1_13.txt |
AC |
114 ms |
19448 KB |
subtask_1_14.txt |
AC |
64 ms |
18560 KB |
subtask_1_15.txt |
AC |
105 ms |
21888 KB |
subtask_1_16.txt |
AC |
46 ms |
15676 KB |
subtask_1_17.txt |
AC |
246 ms |
26104 KB |
subtask_1_18.txt |
AC |
51 ms |
18428 KB |
subtask_1_19.txt |
AC |
160 ms |
20352 KB |
subtask_1_20.txt |
AC |
189 ms |
23928 KB |
subtask_1_21.txt |
AC |
241 ms |
22776 KB |
subtask_1_22.txt |
AC |
246 ms |
26612 KB |
subtask_1_23.txt |
AC |
240 ms |
22780 KB |
subtask_1_24.txt |
AC |
254 ms |
26608 KB |
subtask_1_25.txt |
AC |
262 ms |
26360 KB |
subtask_1_26.txt |
AC |
246 ms |
26228 KB |
subtask_1_27.txt |
AC |
245 ms |
25088 KB |
subtask_1_28.txt |
AC |
269 ms |
25208 KB |
subtask_1_29.txt |
AC |
256 ms |
26360 KB |
subtask_1_30.txt |
AC |
252 ms |
26228 KB |
subtask_1_31.txt |
AC |
229 ms |
25088 KB |
subtask_1_32.txt |
AC |
257 ms |
25208 KB |
subtask_1_33.txt |
AC |
254 ms |
26360 KB |
subtask_1_34.txt |
AC |
245 ms |
26228 KB |
subtask_1_35.txt |
AC |
224 ms |
25088 KB |
subtask_1_36.txt |
AC |
267 ms |
25208 KB |
subtask_1_37.txt |
AC |
327 ms |
26360 KB |
subtask_1_38.txt |
AC |
242 ms |
26228 KB |
subtask_1_39.txt |
AC |
227 ms |
25088 KB |
subtask_1_40.txt |
AC |
260 ms |
25208 KB |
subtask_1_41.txt |
AC |
132 ms |
17656 KB |
subtask_1_42.txt |
AC |
117 ms |
16000 KB |
subtask_1_43.txt |
AC |
137 ms |
19576 KB |
subtask_1_44.txt |
AC |
122 ms |
16188 KB |
subtask_1_45.txt |
AC |
117 ms |
15744 KB |
subtask_1_46.txt |
AC |
90 ms |
17148 KB |
subtask_1_47.txt |
AC |
83 ms |
14848 KB |
subtask_1_48.txt |
AC |
92 ms |
18548 KB |
subtask_1_49.txt |
AC |
85 ms |
15232 KB |
subtask_1_50.txt |
AC |
82 ms |
14976 KB |
subtask_1_51.txt |
AC |
6 ms |
13568 KB |
subtask_1_52.txt |
AC |
5 ms |
13568 KB |
subtask_1_53.txt |
AC |
5 ms |
13696 KB |
subtask_1_54.txt |
AC |
5 ms |
13568 KB |
subtask_1_55.txt |
AC |
5 ms |
13568 KB |