定义set记录已出现材料,每次输入材料:
(1)查询该材料是否在set中出现过,若出现过则直接看下一个输入,避免重复计数
(2)若未出现则插入set,且计数+1

#include
using namespace std;
int main()
{
    set material_set;
    string str;
    int sum=0;
    while( cin>>str )
    {
        if( material_set.find( str ) != material_set.end() ) continue;
        material_set.insert(str);
        sum++;
    }
    cout<<sum<<endl;
    return 0;
}