思路:
题意描述不清,应该问最多有多少次碰撞。
参考了
实现:
1 #include2 using namespace std; 3 typedef long long ll; 4 typedef pair pll; 5 int main() 6 { 7 int n; 8 ll a, b, x, p, q; 9 while (cin >> n >> a >> b)10 {11 map > mp;12 for (int i = 0; i < n; i++)13 { 14 cin >> x >> p >> q;15 ll tmp = a * p - q;16 pll k(p, q);17 if (!mp.count(tmp)) { mp[tmp] = map (); mp[tmp][k] = 0; }18 mp[tmp][k]++;19 }20 ll ans = 0;21 for (auto it: mp)22 {23 ll tot = 0;24 for (auto itr: it.second) tot += itr.second;25 for (auto itr: it.second) ans += itr.second * (tot - itr.second);26 }27 cout << ans << endl;28 }29 return 0;30 }