hiho week 126 register

Ended

Participants:173

Verdict:Accepted
Score:100 / 100
Submitted:2016-12-03 15:41:37

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
using namespace std;
const double R = 6000000;
const double PI = acos(-1.0);
string base32="0123456789bcdefghjkmnpqrstuvwxyz";
vector<int> index(256);
string getGeoHash(double latitude,double longitude,int l=6) {
    string res;
    res.reserve(8);
    int n = l*5;
    vector<double> lati_range {-90,90};
    vector<double> longi_range{-180,180};
    int bits = 0;
    for(int i = 0; i < n; i++) {
        if(i%2==0) {
            double m = (longi_range[0] + longi_range[1])/2;
            if(longitude > m) {
                bits = bits * 2 + 1;
                longi_range[0] = m;
            } else {
                bits = bits * 2;
                longi_range[1] = m;
            }
        } else {
            double m = (lati_range[0] + lati_range[1])/2;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX