http://acm.fafu.edu.cn/problem.php?id=1266
数据加速输入模板来源:http://blog.csdn.net/shahdza/article/details/6317011 我把它改进了一下。
思路很容易理解:
#include<cstdio>
#include<algorithm>
using namespace std;
inline void input(int &ret) {
char c;
while(c=getchar(),c<'0'||c>'9');
ret=c-'0';
while(c=getchar(),c>='0'&&c<='9') ret=ret*10+(c-'0');
}
inline bool is_input(int &ret) {
char c;
while(c=getchar(),c<'0'||c>'9')if(c==EOF) return 0;
ret=c-'0';
while(c=getchar(),c>='0'&&c<='9') ret=ret*10+(c-'0');
return 1;
}
void output(int n)
{
if(n>9) output(n/10);
putchar(n%10+'0');
}
int num[1000000];
int main()
{
int n,m,a;
while(is_input(n))
{
for(int i=0;i<n;++i)
{
input(num[i]);
}
input(m);
sort(num,num+n);
for(int i=0;i<m;++i)
{
if(i) putchar(' ');
input(a);
output(upper_bound(num,num+n,a)-lower_bound(num,num+n,a));
}
putchar('\n');
}
return 0;
}