Submission #1349607

#TimeUsernameProblemLanguageResultExecution timeMemory
1349607mishasimVera and Modern Art (CCO17_art)C++20
5 / 25
2857 ms9872 KiB
#include <bits/stdc++.h>

using namespace std;
#define endl '\n'
unordered_map<long long, long long> m[61][61];
long long n, q, x, y, v, res;

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin>>n>>q;
    for(int i = 1 ; i<=n ; i++){
        cin>>x>>y>>v;
        int lx = 63 - __builtin_clzll(x);
    int ly = 63 - __builtin_clzll(y);
    long long rx = x % (1LL << lx);
    long long ry = y % (1LL << ly);
    long long key = (rx << 32) | ry;
    m[lx][ly][key] += v;
    }
    for(int i = 1 ; i<=q ; i++){
        res = 0;
        cin>>x>>y;
       for(int lx = 0; lx <= 60; lx++){
    if((1LL << lx) > x) break;
    long long rx = x % (1LL << lx);
    for(int ly = 0; ly <= 60; ly++){
        if((1LL << ly) > y) break;
        long long ry = y % (1LL << ly);
        long long key = (rx << 32) | ry;
        if(m[lx][ly].count(key)) res += m[lx][ly][key];
    }
}
        cout<<res<<endl;
    }

    return 0;
}



#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...