Submission #1789155
Source Code Expand
#include<bits/stdc++.h> using namespace std; #define LL long long #define CC(n,m) ((LL)fac[(n)+(m)]*ifac[n]%mo*ifac[m]%mo) const int N=1e6; const int maxn=N+10; const int mo=998244353; int row,line,sum,Ans; int n,m,fac[maxn],ifac[maxn]; int power(int x,int k) { int res=1; while (k) { if (k&1) res=(LL)res*x%mo; x=(LL)x*x%mo; k>>=1; } return res; } int F(int n,int m,int x,int y) { /* if (m-y<0) puts("#3"); if (n-x<0) { puts("#4"); printf("%d %d %d %d\n",n,m,x,y); } */ // if (x>N||y>N||n-x>N||m-y>N) printf("..."); if (x>=0&&y>=0) return CC(x,y)*CC((n)-(x),(m)-(y))%mo; else return CC((n)-(x),(m)-(y))%mo; } int main() { #ifdef h10 freopen("F.in","r",stdin); freopen("F.out","w",stdout); #endif int i; fac[0]=1; for (i=1;i<=N;i++) fac[i]=(LL)fac[i-1]*i%mo; ifac[N]=power(fac[N],mo-2); for (i=N;i>=1;i--) ifac[i-1]=(LL)ifac[i]*i%mo; scanf("%d%d",&n,&m); if (n>m) swap(n,m); for (i=1;i<=n+m;i++) { // if (i==1) // { // row=CC(n,m-1); // line=CC(n-1,m); // } // else if (i<=n*2+1) { if (i&1) { //3 : n,m-2,1,0 //5 : n,m-2,2,1 (row+=F(n,m-2,i>>1,(i>>1)-1))%=mo; if (i<=n*2) (line+=F(n-2,m,(i>>1)-1,i>>1))%=mo; // if (i==n*2+1) if (i==1) { // printf("+=F(%d,%d,%d,%d)\n",n,m-2,i>>1,(i>>1)-1); } } else { (row+=mo-F(n-1,m-1,(i>>1)-1,(i>>1)-1))%=mo; (line+=mo-F(n-1,m-1,(i>>1)-1,(i>>1)-1))%=mo; } } (sum+=row)%=mo; (sum+=line)%=mo; (Ans+=(LL)sum*power(i,mo-2)%mo)%=mo; // printf("%d : %d %d\n",i,row,line); } Ans=(LL)Ans*power(CC(n,m),mo-2)%mo; printf("%d\n",Ans); }
Submission Info
Submission Time | |
---|---|
Task | F - Yes or No |
User | h10 |
Language | C++14 (GCC 5.4.1) |
Score | 2000 |
Code Size | 1712 Byte |
Status | AC |
Exec Time | 197 ms |
Memory | 8064 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:56:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d",&n,&m); ^
Judge Result
Set Name | Sample | Partial | All | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1500 / 1500 | 500 / 500 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt |
Partial | sample_01.txt, sample_02.txt, sample_04.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 |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.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_2_01.txt, subtask_2_02.txt, subtask_2_03.txt, subtask_2_04.txt, subtask_2_05.txt, subtask_2_06.txt, subtask_2_07.txt, subtask_2_08.txt, subtask_2_09.txt, subtask_2_10.txt, subtask_2_11.txt, subtask_2_12.txt, subtask_2_13.txt, subtask_2_14.txt, subtask_2_15.txt, subtask_2_16.txt, subtask_2_17.txt, subtask_2_18.txt, subtask_2_19.txt, subtask_2_20.txt, subtask_2_21.txt, subtask_2_22.txt, subtask_2_23.txt, subtask_2_24.txt, subtask_2_25.txt, subtask_2_26.txt, subtask_2_27.txt, subtask_2_28.txt, subtask_2_29.txt, subtask_2_30.txt, subtask_2_31.txt, subtask_2_32.txt, subtask_2_33.txt, subtask_2_34.txt, subtask_2_35.txt, subtask_2_36.txt, subtask_2_37.txt, subtask_2_38.txt, subtask_2_39.txt, subtask_2_40.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 13 ms | 8064 KB |
sample_02.txt | AC | 13 ms | 8064 KB |
sample_03.txt | AC | 13 ms | 8064 KB |
sample_04.txt | AC | 13 ms | 8064 KB |
sample_05.txt | AC | 13 ms | 8064 KB |
subtask_1_01.txt | AC | 13 ms | 8064 KB |
subtask_1_02.txt | AC | 13 ms | 8064 KB |
subtask_1_03.txt | AC | 13 ms | 8064 KB |
subtask_1_04.txt | AC | 13 ms | 8064 KB |
subtask_1_05.txt | AC | 13 ms | 8064 KB |
subtask_1_06.txt | AC | 13 ms | 8064 KB |
subtask_1_07.txt | AC | 13 ms | 8064 KB |
subtask_1_08.txt | AC | 13 ms | 8064 KB |
subtask_1_09.txt | AC | 13 ms | 8064 KB |
subtask_1_10.txt | AC | 14 ms | 8064 KB |
subtask_1_11.txt | AC | 13 ms | 8064 KB |
subtask_1_12.txt | AC | 14 ms | 8064 KB |
subtask_1_13.txt | AC | 17 ms | 8064 KB |
subtask_1_14.txt | AC | 24 ms | 8064 KB |
subtask_1_15.txt | AC | 49 ms | 8064 KB |
subtask_1_16.txt | AC | 50 ms | 8064 KB |
subtask_1_17.txt | AC | 49 ms | 8064 KB |
subtask_1_18.txt | AC | 50 ms | 8064 KB |
subtask_1_19.txt | AC | 50 ms | 8064 KB |
subtask_1_20.txt | AC | 50 ms | 8064 KB |
subtask_1_21.txt | AC | 49 ms | 8064 KB |
subtask_1_22.txt | AC | 50 ms | 8064 KB |
subtask_1_23.txt | AC | 49 ms | 8064 KB |
subtask_1_24.txt | AC | 47 ms | 8064 KB |
subtask_1_25.txt | AC | 45 ms | 8064 KB |
subtask_2_01.txt | AC | 13 ms | 8064 KB |
subtask_2_02.txt | AC | 13 ms | 8064 KB |
subtask_2_03.txt | AC | 13 ms | 8064 KB |
subtask_2_04.txt | AC | 195 ms | 8064 KB |
subtask_2_05.txt | AC | 196 ms | 8064 KB |
subtask_2_06.txt | AC | 196 ms | 8064 KB |
subtask_2_07.txt | AC | 196 ms | 8064 KB |
subtask_2_08.txt | AC | 196 ms | 8064 KB |
subtask_2_09.txt | AC | 196 ms | 8064 KB |
subtask_2_10.txt | AC | 196 ms | 8064 KB |
subtask_2_11.txt | AC | 196 ms | 8064 KB |
subtask_2_12.txt | AC | 196 ms | 8064 KB |
subtask_2_13.txt | AC | 196 ms | 8064 KB |
subtask_2_14.txt | AC | 197 ms | 8064 KB |
subtask_2_15.txt | AC | 197 ms | 8064 KB |
subtask_2_16.txt | AC | 196 ms | 8064 KB |
subtask_2_17.txt | AC | 195 ms | 8064 KB |
subtask_2_18.txt | AC | 181 ms | 8064 KB |
subtask_2_19.txt | AC | 156 ms | 8064 KB |
subtask_2_20.txt | AC | 91 ms | 8064 KB |
subtask_2_21.txt | AC | 92 ms | 8064 KB |
subtask_2_22.txt | AC | 91 ms | 8064 KB |
subtask_2_23.txt | AC | 92 ms | 8064 KB |
subtask_2_24.txt | AC | 91 ms | 8064 KB |
subtask_2_25.txt | AC | 91 ms | 8064 KB |
subtask_2_26.txt | AC | 92 ms | 8064 KB |
subtask_2_27.txt | AC | 93 ms | 8064 KB |
subtask_2_28.txt | AC | 94 ms | 8064 KB |
subtask_2_29.txt | AC | 96 ms | 8064 KB |
subtask_2_30.txt | AC | 113 ms | 8064 KB |
subtask_2_31.txt | AC | 134 ms | 8064 KB |
subtask_2_32.txt | AC | 196 ms | 8064 KB |
subtask_2_33.txt | AC | 196 ms | 8064 KB |
subtask_2_34.txt | AC | 196 ms | 8064 KB |
subtask_2_35.txt | AC | 194 ms | 8064 KB |
subtask_2_36.txt | AC | 193 ms | 8064 KB |
subtask_2_37.txt | AC | 101 ms | 8064 KB |
subtask_2_38.txt | AC | 80 ms | 8064 KB |
subtask_2_39.txt | AC | 188 ms | 8064 KB |
subtask_2_40.txt | AC | 111 ms | 8064 KB |