Cod sursa(job #2036492)

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