Submission #34994

# Submission time Handle Problem Language Result Execution time Memory
34994 2017-11-17T09:15:56 Z nad312 스파이 (JOI13_spy) C++14
0 / 100
2000 ms 247716 KB
#include<bits/stdc++.h>
using namespace std;
typedef int lli;
lli a, b, c, d, e, f, g, h,  chia=64;
long long int x[2009][7820]={}, y[2009][7820]={};
vector<lli> Dx[2009], Dy[2009];
lli next()
{
	register char ch=getchar();
	lli l=0;
	while(ch<'0'||ch>'9')
	{
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		l=l*10+ch-'0';
		ch=getchar();
	}
	return l;
}
void DSFx(lli u, lli k)
{
	x[u][k/chia]=x[u][k/chia]|((long long int)1<<(k%chia));
	for(auto v: Dx[u])
	{
		DSFx(v, k);
	}
}
void DSFy(lli u, lli k)
{
	y[u][k/chia]=y[u][k/chia]|((long long int)1<<(k%chia));
	for(auto v: Dy[u])
	{
		DSFy(v, k);
	}
}
void Inp()
{
	a=next();
	b=next();
	for(int i=1;i<=a;i++)
	{
		c=next();
		d=next();
		Dx[c].push_back(i);
		Dy[d].push_back(i);
	}
	for(int i=1;i<=b;i++)
	{
		c=next();
		d=next();
		DSFx(c, i);
		DSFy(d, i);
	}
}
lli Count(lli m)
{
	lli n=0;
	for(int i=0;;i++)
	{
		if(((lli)1<<i)>m)
		{
			return n;
		}
		if((m>>i)&1==1)
		{
			n++;
		}
	}
}
void Solve()
{
	h=b/chia;
	for(int i=1;i<=a;i++)
	{
		d=0;
		for(int j=0;j<=h;j++)
		{
			c=(x[i][j]&y[i][j]);
			d=d+Count(c);
		}
		cout<<d<<'\n';
	}
}
int main()
{
	//freopen("test.inp","r",stdin);
	Inp();
	Solve();
}

Compilation message

spy.cpp: In function 'lli Count(lli)':
spy.cpp:66:12: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   if((m>>i)&1==1)
            ^
# Verdict Execution time Memory Grader output
1 Execution timed out 2000 ms 247584 KB Execution timed out
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2000 ms 247716 KB Execution timed out
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2000 ms 247716 KB Execution timed out
2 Halted 0 ms 0 KB -