Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <vector>#include <string>#include <iostream>using namespace std;struct TRIE {int p[2];char mask;int rank;} tries[990000] = {0};int num = 1;void add(unsigned int ip,int l,int f,int rank) {int p = 0;for(int i = 0; i < l; i++) {int q = (ip>>31);ip<<=1;if(tries[p].p[q]==0) {tries[p].p[q] = num;num++;}p = tries[p].p[q];}if(tries[p].mask==0) {tries[p].mask = 2|f;tries[p].rank = rank;}}bool search(unsigned int ip,int l = 32) {