Main.cc: In function ‘int check(int, int)’: Main.cc:18:35: error: cannot bind non-const lvalue reference of type ‘int&’ to an rvalue of type ‘int’ if(ta[i]>=x)add(suma,ja[ta[i]-x]); ^ Main.cc:8:6: note: initializing argument 1 of ‘void add(int&, int)’ void add(int &x,int v){x+=v;if(x>=998244353)x-=998244353;} ^~~ Main.cc:22:35: error: cannot bind non-const lvalue reference of type ‘int&’ to an rvalue of type ‘int’ if(tb[i]>=y)add(sumb,jb[tb[i]-y]); ^ Main.cc:8:6: note: initializing argument 1 of ‘void add(int&, int)’ void add(int &x,int v){x+=v;if(x>=998244353)x-=998244353;} ^~~ Main.cc: In function ‘int main()’: Main.cc:28:10: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d",&n,&m,&k); ~~~~~^~~~~~~~~~~~~~~~~~~ Main.cc:30:14: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&a[i]); ~~~~~^~~~~~~~~~~~ Main.cc:35:14: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&b[i]); ~~~~~^~~~~~~~~~~~