Cod sursa(job #997382)

Utilizator misinoonisim necula misino Data 13 septembrie 2013 22:47:39
Problema Avioane Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#include<algorithm>
#define N 100010
using namespace std;
ifstream f("inundatie.in");
ofstream g("inundatie.out");
long long n,m,li,ls,mij,x,p,i,j,nr,v[N],a[N];
int main()
{
    f>>n>>m;
    for(i=1;i<=n;++i)
    for(j=1;j<=m;++j)
    {
        f>>x;
        if(x>0)
        v[++nr]=x;
    }
    sort(v+1,v+nr+1);
    for(i=1;i<=nr;++i)
    a[i]=v[i]+a[i-1];
    f>>p;
    for(;p;--p)
    {
        f>>x;
        --x;
        li=1;
        ls=nr;
        while(li<ls)
        {
            mij=(li+ls)>>1;
            if(x>v[mij]&&x>=v[mij+1])
            li=mij+1;
            else
            ls=mij-1;
        }
        while(v[li]<x&&li<=nr)
        ++li;
        if(x>0)
        g<<a[li-1]+x*(nr-li+1)<<'\n';
        else
        g<<0<<'\n';
    }
    return 0;
}