Cod sursa(job #2036516)

Utilizator andreiutu111Noroc Andrei Mihail andreiutu111 Data 10 octombrie 2017 19:28:44
Problema Grendizer Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<fstream>
#include<vector>
#include<algorithm>
#include<math.h>
using namespace std;
ifstream f("grendizer.in");
ofstream g("grendizer.out");
long long x,y,r,N,M;
vector < pair<long long,long long> > ob;
bool cmp(pair<long long,long long> X,pair<long long,long long> Y){
    if(X.first>Y.first)return false;
    return true;
}
int main()
{
    f>>N>>M;
    for(long long i=1;i<=N;++i)
        f>>x>>y,ob.push_back(make_pair(x,y));
    sort(ob.begin(),ob.begin()+N,cmp);
    for(long long o=1;o<=M;++o){
        f>>x>>y>>r;
        long long k=0;
        while(x-r>ob[k].first){
            ++k;
            if(k==N)break;
        }
        if(k==N)g<<0<<'\n';
        else{
            long long nr=0;
            while(ob[k].first<=x+r){
                if(ob[k].second<=y+r && ob[k].second>=y-r && abs(ob[k].first-x)+abs(ob[k].second-y)==r)++nr;
                ++k;
                if(k==N)break;
            }
            g<<nr<<'\n';
        }
    }
    return 0;
}