URAL 1880 Psych Up's Eigenvalues (技巧)

11 篇文章 0 订阅

Psych Up's Eigenvalues

Time limit: 0.5 second
Memory limit: 64 MB
At one of the contests at the Petrozavodsk Training Camp, players of the Psych Up team quickly found the simple problem and Fedya sat at the computer. The solution was ready in five minutes. Without spending time for testing, Fedya submitted it and in a few seconds got Time Limit Exceeded.
Fedya crumpled the problem statement and left the room slamming the door behind him. Things were going the wrong way and he needed to wind down. On his way to the restroom Fedya heard a conversation of the contest authors. Pasha was discussing with his friend the solution of the problem for which Fedya had got TLE. Fedya could only discern the word “eigenvalues.”
Fedya thought about it and decided that he, for sure, had his eigenvalues. For example, the date of birth, the number of his apartment, the mark he had got at the latest exam, or the number of travels to contests. But they had a team contest, so what was their team's eigenvalue? Of course, a number was a team's eigenvalue if it was an eigenvalue for each of its players. With these joyful thoughts Fedya returned to the contest room.

Input

The input data consist of three blocks two lines each. The first line of each block contains the number  n of a player's eigenvalues  (1 ≤  n ≤ 4 000) . In the second line you are given  n distinct integers in ascending order, which are the eigenvalues. All the eigenvalues are positive integers not exceeding 10 9.

Output

Output the number of eigenvalues of the Psych Up team.

Sample

input output
5
13 20 22 43 146
4
13 22 43 146
5
13 43 67 89 146
3




题意:找三个序列中都有的数的个数。

解析:由于数太大,所以不能直接开个数组去统计个数,但是可以用map建立从int到int的映射,这样就不用考虑数太大不能当下表统计的烦恼了。



AC代码:

#include <cstdio>
#include <map>
using namespace std;

map<int, int> a;

int main(){
    #ifdef sxk
        freopen("in.txt", "r", stdin);
    #endif //sxk

    int n, ans = 0, c;
    while(~scanf("%d", &n)){
        for(int i=0; i<n; i++){
            scanf("%d", &c);
            ans += ++a[c] == 3;        //统计出现的个数
        }
    }
    printf("%d\n", ans);
    return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值