Submission #71623
Source Code Expand
#include<cstdio> #include<cstdlib> #include<utility> #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; typedef long long ll; const int N_MAX=100001; template<class T> class Fenwick_tree_dual{ int n; T a[N_MAX]; public: void build(int n){ this->n=n; rep(i,n) a[i]=0; } void add(int i,int j,T v){ if(i==0){ for(;j>=0;j=(j&(j+1))-1) a[j]+=v; return; } add(0,j,v); add(0,i-1,-v); } T sum(int i){ T s=0; for(;i<n;i|=i+1) s+=a[i]; return s; } }; ll modpow(ll a,ll n,ll m){ ll r=1; for(ll x=a%m;n;n>>=1,x=(x*x)%m) if(n&1) r=(r*x)%m; return r; } Fenwick_tree_dual<int> F; bool set(int d1,int d2,int T){ int d=d1+d2; if(d%2!=T%2 || d>T) return false; int a=(T-d)/2; // * C(T,a) F.add(1,T,1); F.add(1,a,-1); F.add(1,T-a,-1); // * C(T,d1+a) F.add(1,T,1); F.add(1,d1+a,-1); F.add(1,T-d1-a,-1); return true; } int main(){ int n,T,M; scanf("%d%d%d",&n,&T,&M); F.build(100001); bool ok=true; rep(_,n){ int x,y; scanf("%d%d",&x,&y); ok&=set(abs(x),abs(y),T); } if(!ok) return puts("0"),0; ll ans=1; for(int a=100000;a>=2;a--){ int tmp=a; // a を素因数分解 int sz=0; pair<int,int> pf[10]; for(int p=2;p*p<=a;p++) if(a%p==0) { int e=0; do{ a/=p; e++; }while(a%p==0); pf[sz++]=make_pair(p,e); } if(a>1) pf[sz++]=make_pair(a,1); a=tmp; if(sz==1 && pf[0].second==1){ ans=ans*modpow(a,F.sum(a),M)%M; } else{ int num=F.sum(a); rep(i,sz){ int p=pf[i].first,e=pf[i].second; F.add(p,p,e*num); } } } printf("%lld\n",ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Don't worry. Be Together |
User | fura2 |
Language | C++ (G++ 4.6.4) |
Score | 100 |
Code Size | 1673 Byte |
Status | AC |
Exec Time | 150 ms |
Memory | 1080 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:68:37: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] ./Main.cpp:74:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
Judge Result
Set Name | part1 | part2 | part3 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 40 / 40 | 30 / 30 | 30 / 30 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
part1 | part1/part1_00_sample_00.txt, part1/part1_00_sample_01.txt, part1/part1_maxrand_00.txt, part1/part1_maxrand_01.txt, part1/part1_maxrand_02.txt, part1/part1_maxrand_03.txt, part1/part1_maxrand_04.txt, part1/part1_maxrand_05.txt, part1/part1_maxrand_06.txt, part1/part1_maxrand_07.txt, part1/part1_maxrand_08.txt, part1/part1_maxrand_09.txt, part1/part1_maxrand_10.txt, part1/part1_maxrand_11.txt, part1/part1_maxrand_12.txt, part1/part1_maxrand_13.txt, part1/part1_maxrand_14.txt, part1/part1_rand1_00.txt, part1/part1_rand1_01.txt, part1/part1_rand1_02.txt, part1/part1_rand1_03.txt, part1/part1_rand2_00.txt, part1/part1_rand2_01.txt, part1/part1_rand2_02.txt, part1/part1_rand2_03.txt, part1/part1_rand2_04.txt, part1/part1_rand2_05.txt, part1/part1_rand2_06.txt, part1/part1_rand2_07.txt, part1/part1_rand2_08.txt, part1/part1_rand2_09.txt |
part2 | part2/part2_00_sample_02.txt, part2/part2_00_sample_03.txt, part2/part2_maxrand_00.txt, part2/part2_maxrand_01.txt, part2/part2_maxrand_02.txt, part2/part2_maxrand_03.txt, part2/part2_maxrand_04.txt, part2/part2_maxrand_05.txt, part2/part2_maxrand_06.txt, part2/part2_maxrand_07.txt, part2/part2_maxrand_08.txt, part2/part2_maxrand_09.txt, part2/part2_maxrand_10.txt, part2/part2_maxrand_11.txt, part2/part2_maxrand_12.txt, part2/part2_maxrand_13.txt, part2/part2_maxrand_14.txt, part2/part2_rand1_00.txt, part2/part2_rand1_01.txt, part2/part2_rand1_02.txt, part2/part2_rand1_03.txt, part2/part2_rand2_00.txt, part2/part2_rand2_01.txt, part2/part2_rand2_02.txt, part2/part2_rand2_03.txt, part2/part2_rand2_04.txt, part2/part2_rand2_05.txt, part2/part2_rand2_06.txt, part2/part2_rand2_07.txt, part2/part2_rand2_08.txt, part2/part2_rand2_09.txt |
part3 | part1/part1_00_sample_00.txt, part1/part1_00_sample_01.txt, part1/part1_maxrand_00.txt, part1/part1_maxrand_01.txt, part1/part1_maxrand_02.txt, part1/part1_maxrand_03.txt, part1/part1_maxrand_04.txt, part1/part1_maxrand_05.txt, part1/part1_maxrand_06.txt, part1/part1_maxrand_07.txt, part1/part1_maxrand_08.txt, part1/part1_maxrand_09.txt, part1/part1_maxrand_10.txt, part1/part1_maxrand_11.txt, part1/part1_maxrand_12.txt, part1/part1_maxrand_13.txt, part1/part1_maxrand_14.txt, part1/part1_rand1_00.txt, part1/part1_rand1_01.txt, part1/part1_rand1_02.txt, part1/part1_rand1_03.txt, part1/part1_rand2_00.txt, part1/part1_rand2_01.txt, part1/part1_rand2_02.txt, part1/part1_rand2_03.txt, part1/part1_rand2_04.txt, part1/part1_rand2_05.txt, part1/part1_rand2_06.txt, part1/part1_rand2_07.txt, part1/part1_rand2_08.txt, part1/part1_rand2_09.txt, part2/part2_00_sample_02.txt, part2/part2_00_sample_03.txt, part2/part2_maxrand_00.txt, part2/part2_maxrand_01.txt, part2/part2_maxrand_02.txt, part2/part2_maxrand_03.txt, part2/part2_maxrand_04.txt, part2/part2_maxrand_05.txt, part2/part2_maxrand_06.txt, part2/part2_maxrand_07.txt, part2/part2_maxrand_08.txt, part2/part2_maxrand_09.txt, part2/part2_maxrand_10.txt, part2/part2_maxrand_11.txt, part2/part2_maxrand_12.txt, part2/part2_maxrand_13.txt, part2/part2_maxrand_14.txt, part2/part2_rand1_00.txt, part2/part2_rand1_01.txt, part2/part2_rand1_02.txt, part2/part2_rand1_03.txt, part2/part2_rand2_00.txt, part2/part2_rand2_01.txt, part2/part2_rand2_02.txt, part2/part2_rand2_03.txt, part2/part2_rand2_04.txt, part2/part2_rand2_05.txt, part2/part2_rand2_06.txt, part2/part2_rand2_07.txt, part2/part2_rand2_08.txt, part2/part2_rand2_09.txt, part3/part3_maxrand_00.txt, part3/part3_maxrand_01.txt, part3/part3_maxrand_02.txt, part3/part3_maxrand_03.txt, part3/part3_maxrand_04.txt, part3/part3_maxrand_05.txt, part3/part3_maxrand_06.txt, part3/part3_maxrand_07.txt, part3/part3_maxrand_08.txt, part3/part3_maxrand_09.txt, part3/part3_maxrand_10.txt, part3/part3_maxrand_11.txt, part3/part3_maxrand_12.txt, part3/part3_maxrand_13.txt, part3/part3_maxrand_14.txt, part3/part3_rand1_00.txt, part3/part3_rand1_01.txt, part3/part3_rand1_02.txt, part3/part3_rand1_03.txt, part3/part3_rand2_00.txt, part3/part3_rand2_01.txt, part3/part3_rand2_02.txt, part3/part3_rand2_03.txt, part3/part3_rand2_04.txt, part3/part3_rand2_05.txt, part3/part3_rand2_06.txt, part3/part3_rand2_07.txt, part3/part3_rand2_08.txt, part3/part3_rand2_09.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
part1/part1_00_sample_00.txt | AC | 78 ms | 1020 KB |
part1/part1_00_sample_01.txt | AC | 76 ms | 1052 KB |
part1/part1_maxrand_00.txt | AC | 140 ms | 1012 KB |
part1/part1_maxrand_01.txt | AC | 139 ms | 1048 KB |
part1/part1_maxrand_02.txt | AC | 141 ms | 1048 KB |
part1/part1_maxrand_03.txt | AC | 138 ms | 920 KB |
part1/part1_maxrand_04.txt | AC | 139 ms | 1016 KB |
part1/part1_maxrand_05.txt | AC | 140 ms | 1016 KB |
part1/part1_maxrand_06.txt | AC | 140 ms | 1020 KB |
part1/part1_maxrand_07.txt | AC | 138 ms | 948 KB |
part1/part1_maxrand_08.txt | AC | 138 ms | 1036 KB |
part1/part1_maxrand_09.txt | AC | 139 ms | 1040 KB |
part1/part1_maxrand_10.txt | AC | 140 ms | 1048 KB |
part1/part1_maxrand_11.txt | AC | 138 ms | 1044 KB |
part1/part1_maxrand_12.txt | AC | 139 ms | 1048 KB |
part1/part1_maxrand_13.txt | AC | 139 ms | 1040 KB |
part1/part1_maxrand_14.txt | AC | 138 ms | 1032 KB |
part1/part1_rand1_00.txt | AC | 48 ms | 1036 KB |
part1/part1_rand1_01.txt | AC | 30 ms | 1044 KB |
part1/part1_rand1_02.txt | AC | 56 ms | 1036 KB |
part1/part1_rand1_03.txt | AC | 63 ms | 924 KB |
part1/part1_rand2_00.txt | AC | 116 ms | 1072 KB |
part1/part1_rand2_01.txt | AC | 86 ms | 1040 KB |
part1/part1_rand2_02.txt | AC | 130 ms | 1040 KB |
part1/part1_rand2_03.txt | AC | 140 ms | 1040 KB |
part1/part1_rand2_04.txt | AC | 92 ms | 1044 KB |
part1/part1_rand2_05.txt | AC | 103 ms | 1036 KB |
part1/part1_rand2_06.txt | AC | 105 ms | 1040 KB |
part1/part1_rand2_07.txt | AC | 83 ms | 1036 KB |
part1/part1_rand2_08.txt | AC | 84 ms | 1032 KB |
part1/part1_rand2_09.txt | AC | 90 ms | 1036 KB |
part2/part2_00_sample_02.txt | AC | 77 ms | 1036 KB |
part2/part2_00_sample_03.txt | AC | 79 ms | 1040 KB |
part2/part2_maxrand_00.txt | AC | 133 ms | 1040 KB |
part2/part2_maxrand_01.txt | AC | 123 ms | 1044 KB |
part2/part2_maxrand_02.txt | AC | 128 ms | 1040 KB |
part2/part2_maxrand_03.txt | AC | 127 ms | 1036 KB |
part2/part2_maxrand_04.txt | AC | 127 ms | 1044 KB |
part2/part2_maxrand_05.txt | AC | 127 ms | 1044 KB |
part2/part2_maxrand_06.txt | AC | 126 ms | 1044 KB |
part2/part2_maxrand_07.txt | AC | 126 ms | 1044 KB |
part2/part2_maxrand_08.txt | AC | 127 ms | 1036 KB |
part2/part2_maxrand_09.txt | AC | 128 ms | 1036 KB |
part2/part2_maxrand_10.txt | AC | 131 ms | 960 KB |
part2/part2_maxrand_11.txt | AC | 128 ms | 1036 KB |
part2/part2_maxrand_12.txt | AC | 128 ms | 1044 KB |
part2/part2_maxrand_13.txt | AC | 126 ms | 1040 KB |
part2/part2_maxrand_14.txt | AC | 128 ms | 1036 KB |
part2/part2_rand1_00.txt | AC | 48 ms | 1044 KB |
part2/part2_rand1_01.txt | AC | 53 ms | 1048 KB |
part2/part2_rand1_02.txt | AC | 48 ms | 1036 KB |
part2/part2_rand1_03.txt | AC | 59 ms | 1044 KB |
part2/part2_rand2_00.txt | AC | 114 ms | 1024 KB |
part2/part2_rand2_01.txt | AC | 115 ms | 1044 KB |
part2/part2_rand2_02.txt | AC | 109 ms | 1036 KB |
part2/part2_rand2_03.txt | AC | 124 ms | 1040 KB |
part2/part2_rand2_04.txt | AC | 109 ms | 1040 KB |
part2/part2_rand2_05.txt | AC | 120 ms | 1068 KB |
part2/part2_rand2_06.txt | AC | 115 ms | 1040 KB |
part2/part2_rand2_07.txt | AC | 124 ms | 1044 KB |
part2/part2_rand2_08.txt | AC | 126 ms | 1040 KB |
part2/part2_rand2_09.txt | AC | 118 ms | 952 KB |
part3/part3_maxrand_00.txt | AC | 143 ms | 1040 KB |
part3/part3_maxrand_01.txt | AC | 140 ms | 1036 KB |
part3/part3_maxrand_02.txt | AC | 142 ms | 1032 KB |
part3/part3_maxrand_03.txt | AC | 137 ms | 1044 KB |
part3/part3_maxrand_04.txt | AC | 142 ms | 1048 KB |
part3/part3_maxrand_05.txt | AC | 145 ms | 1036 KB |
part3/part3_maxrand_06.txt | AC | 140 ms | 1048 KB |
part3/part3_maxrand_07.txt | AC | 140 ms | 1044 KB |
part3/part3_maxrand_08.txt | AC | 142 ms | 1044 KB |
part3/part3_maxrand_09.txt | AC | 139 ms | 1040 KB |
part3/part3_maxrand_10.txt | AC | 139 ms | 1036 KB |
part3/part3_maxrand_11.txt | AC | 140 ms | 1024 KB |
part3/part3_maxrand_12.txt | AC | 140 ms | 1032 KB |
part3/part3_maxrand_13.txt | AC | 143 ms | 1052 KB |
part3/part3_maxrand_14.txt | AC | 140 ms | 1044 KB |
part3/part3_rand1_00.txt | AC | 55 ms | 1024 KB |
part3/part3_rand1_01.txt | AC | 54 ms | 1080 KB |
part3/part3_rand1_02.txt | AC | 49 ms | 1044 KB |
part3/part3_rand1_03.txt | AC | 66 ms | 1040 KB |
part3/part3_rand2_00.txt | AC | 126 ms | 1036 KB |
part3/part3_rand2_01.txt | AC | 126 ms | 1044 KB |
part3/part3_rand2_02.txt | AC | 115 ms | 1044 KB |
part3/part3_rand2_03.txt | AC | 128 ms | 1040 KB |
part3/part3_rand2_04.txt | AC | 121 ms | 964 KB |
part3/part3_rand2_05.txt | AC | 128 ms | 1044 KB |
part3/part3_rand2_06.txt | AC | 124 ms | 1040 KB |
part3/part3_rand2_07.txt | AC | 129 ms | 1040 KB |
part3/part3_rand2_08.txt | AC | 150 ms | 1036 KB |
part3/part3_rand2_09.txt | AC | 127 ms | 916 KB |