Submission #34994

#TimeUsernameProblemLanguageResultExecution timeMemory
34994nad312스파이 (JOI13_spy)C++14
0 / 100
2000 ms247716 KiB
#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 (stderr)

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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...