提交时间:2023-12-03 19:53:07

运行 ID: 23894

//35pts #include<bits/stdc++.h> #define up(i,l,r) for(int i=(l);i<=(r);++i) #define down(i,l,r) for(int i=(l);i>=(r);--i) #define m_p make_pair #define p_b push_back using namespace std; typedef long long ll; const int maxn=50505; inline ll read(){ ll x=0;short t=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')t=-1;ch=getchar();} while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); return x*t; }int n,m,q,A,B,C,a[25][maxn],mn[25]; ll f[3005][3005]; void init(){ up(p,1,m){ up(i,1,n)mn[i]=1e9; up(q,p,m){ int mx=0; up(i,1,n)mn[i]=min(mn[i],a[i][q]),mx=max(mx,mn[i]); f[p][q]=A^(B*mx+C); } }up(i,1,m)up(j,1,m)f[i][j]+=f[i-1][j]; up(i,1,m)up(j,1,m)f[i][j]+=f[i][j-1]; }ll qry(int l,int r){ return f[r][r]+f[l-1][l-1]-f[l-1][r]-f[r][l-1]; } void slv(){ n=read(),m=read(),q=read(); up(i,1,n)up(j,1,m)a[i][j]=read(); A=read(),B=read(),C=read(); init(); while(q--){ int l=read(),r=read(); printf("%lld\n",qry(l,r)); } }int main(){ //freopen("plant.in","r",stdin); //freopen("plant.out","w",stdout); slv(); fclose(stdin); fclose(stdout); return 0; }