猪八戒吃西瓜(wmelon)

猪八戒吃西瓜(wmelon)

题目描述

有一天,贪吃的猪八戒来到了一个大果园,果园里有n(n≤100000)个大西瓜,每个西瓜 的质量不大于长整型(longint),并且每个西瓜的质量都不同。猪八戒非常无聊,先把所有的西瓜按从小到大排列,然后再选m(m≤l00000)个质量是Ki的西瓜,请你帮他把想吃的西瓜找出来。

输入

第1行输入n,然后以下n行输入n个整数;
接着输入m,然后以下m行,每行一个整数Ki。

输出

输出m行,每行一个整数,表示重新排列后,Ki在这N个数中的位置。

样例输入

3
132
123
145
1
123

样例输出

1
分析:先排序,排完序后直接把值和坐标用map映射一下就好;
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#include <ext/rope>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
#define vi vector<int>
#define pii pair<int,int>
#define mod 1000000007
#define inf 0x3f3f3f3f
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
const int maxn=1e5+10;
const int dis[4][2]={{0,1},{-1,0},{0,-1},{1,0}};
using namespace std;
using namespace __gnu_cxx;
ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}
int n,m;
map<ll,int>a;
ll b[maxn];
int main()
{
    int i,j,k,t;
    scanf("%d",&n);
    rep(i,0,n-1)scanf("%lld",&b[i]);
    sort(b,b+n);
    rep(i,0,n-1)a[b[i]]=i+1;
    scanf("%d",&m);
    while(m--)scanf("%lld",&b[0]),printf("%d\n",a[b[0]]);
    //system ("pause");
    return 0;
}
posted @ 2016-07-31 23:28  mxzf0213  阅读(691)  评论(0编辑  收藏  举报