Submission #1232079


Source Code Expand

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#include<cmath>
#include<string>

#define ls (t<<1)
#define rs ((t<<1)+1)
#define mid ((l+r)>>1)
#define fi first
#define se second
#define mk make_pair
#define pb push_back

#define N 100005
#define M 500005
#define seed 23333

using namespace std;
set<pair<int,int> >st;
multiset<int>str;
vector<pair<int,int> >v[M];
vector<int>alb[M];
int i,j,m,n,p,k,C[N],A[N],B[N],D[M],Ans,F[M],f[M],vis[N],X[N],Y[N],Q;
int ans[M];
void RE()
{
		for (i=1;i<=Q;++i) puts("-1");
		exit(0); 
}
int main()
{
	 scanf("%d",&n); Ans=n;
	 for (i=1;i<=n;++i) scanf("%d%d",&A[i],&B[i]),D[++D[0]]=A[i],D[++D[0]]=B[i];
	 for (i=0;i<=n;++i) scanf("%d",&C[i]),D[++D[0]]=C[i];
	 scanf("%d",&Q);
	 for (i=1;i<=Q;++i) scanf("%d%d",&X[i],&Y[i]),D[++D[0]]=X[i],D[++D[0]]=Y[i]; 
	 sort(D+1,D+D[0]+1);
	 D[0]=unique(D+1,D+D[0]+1)-(D+1);
	 for (i=1;i<=n;++i) A[i]=lower_bound(D+1,D+D[0]+1,A[i])-D,B[i]=lower_bound(D+1,D+D[0]+1,B[i])-D;
	 for (i=0;i<=n;++i) f[lower_bound(D+1,D+D[0]+1,C[i])-D]++;
	 for (i=1;i<=n;++i) f[A[i]]--;
	 for (i=D[0];i;--i) f[i]+=f[i+1];
	 for (i=1;i<=n;++i) if (A[i]>B[i]) v[A[i]].pb(mk(B[i]+1,i));
	 int now=0;
	 for (i=D[0];i;--i)
	 {
	 	for (j=0;j<(int)v[i].size();++j) st.insert(v[i][j]);
	 	f[i]+=now;
	 	while (f[i]<0)
	 	{
	 		   if (!st.size()) RE();
	 		   pair<int,int> x=*st.begin();
	 		   if (x.fi>i) RE();
	 		   F[x.fi]++;
	 		   vis[x.se]=1;
	 		   f[i]++; now++; --Ans;
	 		   st.erase(st.begin());
	 	}
	 	now-=F[i];
	 }
	 memset(ans,-1,sizeof(ans)); ans[0]=Ans;
	 for (i=1;i<=n;++i) if (!vis[i]&&A[i]>B[i]) alb[B[i]+1].pb(A[i]);
	 now=0;
	 memset(f,0,sizeof(f));
	 memset(F,0,sizeof(F));
	 for (i=0;i<=n;++i) f[lower_bound(D+1,D+D[0]+1,C[i])-D]++;
	 for (i=1;i<=n;++i) 	if (!vis[i]) f[A[i]]--; else f[B[i]]--;
	 for (i=D[0];i;--i) f[i]+=f[i+1];
	 for (i=1;i<=D[0];++i)
	 { 
	 	for (j=0;j<(int)alb[i].size();++j) str.insert(alb[i][j]);
	 	f[i]+=now;
	 	if (f[i]<=0)
	 	{
	 		 if (!str.size()) break;
	 		 int x=*--str.end();
	 		 if (x<i) break;
	 		 ans[i]=ans[i-1]-1; f[i]++; now++; F[x]++;
	 		 str.erase(str.find(x));
	 	}
	 	else ans[i]=ans[i-1];
	 	now-=F[i];
	 }
	 for (i=1;i<=Q;++i)
	 {
	 	 X[i]=lower_bound(D+1,D+D[0]+1,X[i])-D;
	 	 Y[i]=lower_bound(D+1,D+D[0]+1,Y[i])-D;
	 	 if (ans[X[i]]==-1&&ans[Y[i]]==-1) puts("-1");
	 	 else if (ans[X[i]]==-1) printf("%d\n",ans[Y[i]]);
	 	 else if (ans[Y[i]]==-1) printf("%d\n",ans[X[i]]+1);
	 	 else printf("%d\n",max(ans[X[i]]+1,ans[Y[i]]));
	 }
}

Submission Info

Submission Time
Task F - Two Faced Cards
User qiaoranliqu
Language C++14 (GCC 5.4.1)
Score 2000
Code Size 2644 Byte
Status AC
Exec Time 268 ms
Memory 50048 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:38:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&n); Ans=n;
                 ^
./Main.cpp:39:77: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   for (i=1;i<=n;++i) scanf("%d%d",&A[i],&B[i]),D[++D[0]]=A[i],D[++D[0]]=B[i];
                                                                             ^
./Main.cpp:40:54: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   for (i=0;i<=n;++i) scanf("%d",&C[i]),D[++D[0]]=C[i];
                                                      ^
./Main.cpp:41:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&Q);
                 ^
./Main.cpp:42:77: warning: ignoring return value of ‘...

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 11 ms 33792 KB
sample_02.txt AC 11 ms 33792 KB
sample_03.txt AC 11 ms 33792 KB
subtask_1_01.txt AC 109 ms 38656 KB
subtask_1_02.txt AC 130 ms 39936 KB
subtask_1_03.txt AC 62 ms 36224 KB
subtask_1_04.txt AC 121 ms 41216 KB
subtask_1_05.txt AC 85 ms 37504 KB
subtask_1_06.txt AC 174 ms 40704 KB
subtask_1_07.txt AC 120 ms 34944 KB
subtask_1_08.txt AC 156 ms 40704 KB
subtask_1_09.txt AC 176 ms 45824 KB
subtask_1_10.txt AC 102 ms 39296 KB
subtask_1_11.txt AC 67 ms 33536 KB
subtask_1_12.txt AC 87 ms 37120 KB
subtask_1_13.txt AC 134 ms 41344 KB
subtask_1_14.txt AC 77 ms 37888 KB
subtask_1_15.txt AC 89 ms 34176 KB
subtask_1_16.txt AC 57 ms 35200 KB
subtask_1_17.txt AC 257 ms 49792 KB
subtask_1_18.txt AC 64 ms 37504 KB
subtask_1_19.txt AC 107 ms 34048 KB
subtask_1_20.txt AC 176 ms 40448 KB
subtask_1_21.txt AC 244 ms 42240 KB
subtask_1_22.txt AC 257 ms 45440 KB
subtask_1_23.txt AC 244 ms 42240 KB
subtask_1_24.txt AC 254 ms 45312 KB
subtask_1_25.txt AC 266 ms 50048 KB
subtask_1_26.txt AC 246 ms 44544 KB
subtask_1_27.txt AC 152 ms 35328 KB
subtask_1_28.txt AC 230 ms 41472 KB
subtask_1_29.txt AC 267 ms 50048 KB
subtask_1_30.txt AC 246 ms 44544 KB
subtask_1_31.txt AC 152 ms 35328 KB
subtask_1_32.txt AC 230 ms 41472 KB
subtask_1_33.txt AC 266 ms 50048 KB
subtask_1_34.txt AC 244 ms 44416 KB
subtask_1_35.txt AC 152 ms 35328 KB
subtask_1_36.txt AC 232 ms 41472 KB
subtask_1_37.txt AC 268 ms 50048 KB
subtask_1_38.txt AC 243 ms 44416 KB
subtask_1_39.txt AC 153 ms 35328 KB
subtask_1_40.txt AC 234 ms 41472 KB
subtask_1_41.txt AC 170 ms 40192 KB
subtask_1_42.txt AC 137 ms 35456 KB
subtask_1_43.txt AC 183 ms 45568 KB
subtask_1_44.txt AC 137 ms 35328 KB
subtask_1_45.txt AC 104 ms 32640 KB
subtask_1_46.txt AC 146 ms 39936 KB
subtask_1_47.txt AC 114 ms 34560 KB
subtask_1_48.txt AC 151 ms 44288 KB
subtask_1_49.txt AC 116 ms 34688 KB
subtask_1_50.txt AC 89 ms 32384 KB
subtask_1_51.txt AC 11 ms 33792 KB
subtask_1_52.txt AC 11 ms 33792 KB
subtask_1_53.txt AC 11 ms 33792 KB
subtask_1_54.txt AC 11 ms 33792 KB
subtask_1_55.txt AC 11 ms 33792 KB