题意:有N/M/K件衣服/裤子/鞋子。有些搭配是不得体的(鞋子和裤子的组合或裤子和衣服的组合),给出这些不合适的搭配,问总共还有多少种搭配。
思路:因为不合适的搭配都发生在裤子上,枚举每条裤子,统计它能与多少衣服/鞋子搭配,乘起来就可以了。
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <iomanip>
#include <cstdlib>
#include <string>
#include <string.h>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <ctype.h>
#include <sstream>
#define ll long long
#define min3(a,b,c) min(a,min(b,c))
#define max3(a,b,c) max(a,max(b,c))
#include<time.h>
using namespace std;
#define INF 1000000
int a[1010];
int b[1010];
char str1[32];
char str2[32];
int main(){
int n,m,k;
while(cin>>n>>m>>k){
if(n==0&&m==0&&k==0)break;
int p;
cin>>p;
for(int i=1;i<=m;i++){
a[i]=n;
b[i]=k;
}
for(int i=1;i<=p;i++){
int u,v;
scanf("%s%d%s%d",str1,&u,str2,&v);
if(str1[0]=='c'){
a[v]--;
}else{
b[u]--;
}
}
int ans=0;
for(int i=1;i<=m;i++){
ans+=a[i]*b[i];
}
cout<<ans<<endl;
}
return 0;
}