首页 > 试题广场 >

则上述程序输出为( )

[单选题]
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
scanf("%d", &n);
map <int, int> xs;
map <int, int> ys;
map < pair <int, int>, int > zs;
long long ans = 0;
for (int i = 0; i < n; i++) {
int x, y;
scanf("%d %d", &x, &y);
ans += (xs[x]++);
ans += (ys[y]++);
ans -= (zs[make_pair(x, y)]++);
}
cout << ans << endl;
return 0;
}
输入:
6
0 0
0 1
0 2
-1 1
0 1
1 1
则上述程序输出为( )
  • 9
  • 10
  • 11
  • 12
这选择题也太长了...
发表于 2019-09-03 20:52:42 回复(0)
拆开解析,对xs,+0+1+2+0+3+0,对ys,+0+0+0+1+2+3,对zs,-0-0-0-0-1-0;和11
发表于 2019-08-27 10:20:45 回复(0)