Submission #10387086


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define next Next
#define gc getchar
#define int long long
const int N=1e6+5;
int n,m,top,b[N],vis[N],val[N],head[N],fa[N];
struct node{
	int x,y;
}a[N];
struct E{
	int too,next,zh;
}edge[N*2];
vector<int>g;
//char buf[1<<21],*p1=buf,*p2=buf;
//inline int gc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
inline int read()
{
    int ret=0,f=0;char c=gc();
    while(!isdigit(c)){if(c=='-')f=1;c=gc();}
    while(isdigit(c)){ret=ret*10+c-48;c=gc();}
    if(f)return -ret;return ret;
}
int find(int x)
{
	if(fa[x]==x)return x;
	fa[x]=find(fa[x]);
	return fa[x];
}
bool cmp(node a,node b)
{
	return a.x<b.x;
}
void add(int a,int b,int c)
{
	edge[++top].too=b;edge[top].zh=c;
	edge[top].next=head[a];head[a]=top;
}
int dfs(int u)
{
	int res=val[u];
	vis[u]=1;
	for(int i=head[u];i;i=edge[i].next)
	{
		int v=edge[i].too,w=edge[i].zh;
		if(vis[v])continue;
		int x=dfs(v);
		if(x)
		{
			g.push_back(w);
			res^=1;
		}
	}
	return res;
}
signed main()
{
	n=read();m=read();
	for(int i=1;i<=n+1;i++)fa[i]=i;
	for(int i=1;i<=n;i++)
	{
		a[i].x=read();a[i].y=read();
	}
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++)b[i]=a[i].x;
	for(int i=1;i<=n;i++)val[i]=a[i].y^a[i-1].y;
	for(int i=1;i<=m;i++)
	{
		int l=read(),r=read();
		l=lower_bound(b+1,b+n+1,l)-b;
		r=upper_bound(b+1,b+n+1,r)-b;
		int x=find(l),y=find(r);
		if(x==y)continue;
		add(l,r,i);
		add(r,l,i);
		fa[x]=y;
	}
	dfs(n+1);
	for(int i=1;i<=n;i++)
	{
		if(vis[i])continue;
		if(dfs(i)==1)
		{
			puts("-1");
			return 0;
		}
	}
	sort(g.begin(),g.end());
	cout<<g.size()<<endl;
	for(int i=0;i<g.size();i++)printf("%lld ",g[i]);
	return 0;
}

Submission Info

Submission Time
Task F - Perils in Parallel
User mztkn
Language C++14 (GCC 5.4.1)
Score 600
Code Size 1758 Byte
Status AC
Exec Time 120 ms
Memory 25592 KiB

Judge Result

Set Name Sample Subtask1
Score / Max Score 0 / 0 600 / 600
Status
AC × 4
AC × 27
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt
Case Name Status Exec Time Memory
sample_01.txt AC 5 ms 12544 KiB
sample_02.txt AC 5 ms 12544 KiB
sample_03.txt AC 5 ms 12544 KiB
sample_04.txt AC 5 ms 12544 KiB
sub1_01.txt AC 92 ms 23420 KiB
sub1_02.txt AC 54 ms 18176 KiB
sub1_03.txt AC 35 ms 17920 KiB
sub1_04.txt AC 50 ms 22784 KiB
sub1_05.txt AC 15 ms 17536 KiB
sub1_06.txt AC 33 ms 22784 KiB
sub1_07.txt AC 35 ms 18432 KiB
sub1_08.txt AC 48 ms 12544 KiB
sub1_09.txt AC 75 ms 24832 KiB
sub1_10.txt AC 51 ms 23420 KiB
sub1_11.txt AC 16 ms 17664 KiB
sub1_12.txt AC 29 ms 15232 KiB
sub1_13.txt AC 61 ms 17664 KiB
sub1_14.txt AC 39 ms 18304 KiB
sub1_15.txt AC 41 ms 18560 KiB
sub1_16.txt AC 42 ms 20352 KiB
sub1_17.txt AC 8 ms 12928 KiB
sub1_18.txt AC 28 ms 18432 KiB
sub1_19.txt AC 20 ms 18304 KiB
sub1_20.txt AC 24 ms 18432 KiB
sub1_21.txt AC 120 ms 25592 KiB
sub1_22.txt AC 41 ms 21244 KiB
sub1_23.txt AC 9 ms 12928 KiB