添加链接描述
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+9;
string gets;
map<string,int> st,mp;
struct node{
int num[N];
}t[N];
string name[N];
int tot=0;
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)cin>>gets,st[gets]=i;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>t[i].num[j];
}
}
string s;
getchar();
getline(cin,s);
string ch="SELECT COUNT(*) FROM Table GROUP BY ";
string p;
for(int i=ch.size();i<s.size();i++){
if(s[i]==','||s[i]==';'){
name[++tot]=p;
p.clear();
}
else p+=s[i];
}
int ans=0;
for(int i=1;i<=n;i++){
string exp;
for(int j=1;j<=tot;j++){
int c=st[name[j]];
exp+='0'+t[i].num[c];
}
if(mp[exp]==0){
ans++;
} mp[exp]++;
}
cout<<ans<<endl;
for(auto it:mp)cout<<it.second<<" ";
return 0;
}
|