cou[],cou1[]分別記錄clothes 和shoe的重復次數,自己花一下圖就好啦
[cpp]
#include<iostream>
#include<cstdio>
#include<memory.h>
#define M 1005
using namespace std;
char a[20],b[20];
int cou[M],te[M][M],te1[M][M],cou1[M];
int main(){
// freopen("in.txt","r",stdin);
int n,m,k,p,x,y;
// printf("%d\n",(1<<31));
while(~scanf("%d%d%d",&n,&m,&k),n+m+k){
scanf("%d",&p);
memset(cou,0,sizeof(cou));
memset(cou1,0,sizeof(cou1));
for(int i=0;i<=1000;i++)
for(int j=0;j<=1000;j++)
{te[i][j]=0;te1[i][j]=0;}
int sum=n*m*k;
while(p--){
scanf("%s%d%s%d",a,&x,b,&y);
if(a[0]=='c'){
if(te[x][y]==0){
cou[y]++;
sum-=k;
sum+=cou1[y];
te[x][y]=1;//去重
}
}
if(a[0]=='p'){
if(te1[x][y]==0){
cou1[x]++;
sum-=n;
sum+=cou[x];
te1[x][y]=1;//去重
}
}
}
printf("%d\n",sum);
}
}