12! 配对
题目内容:找出输入数据中所有两两相乘的积为12!的对数。
输入描述:输入数据中含有一些整数n(1<=n<232)。
输出描述:输出所有两两相乘的积为12!的对数。
输入样例
1 10000 159667200 9696 38373635
1000000 479001600 3 1 479001600
输出样例
3
#include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <cmath> #include <vector> #include <set> #include <map> #include <algorithm> using namespace std; typedef long long ll; int main() { multiset<unsigned ll>s; ll ans=0,n; ll inf=479001600; while(cin>>n) { if(inf%n==0) { multiset<unsigned ll>::iterator it=s.find(inf/n); if(it!=s.end()) { ans++; s.erase(it); } else s.insert(n); } } cout<<ans<<endl; return 0; }