IP地址组合计数
#include<bits/stdc++.h>
using namespace std;
int n, res;
string s;
bool check(string s){
if(s.size() == 0 || s.size() > 3) return false;
if(s[0] == '0' && s.size() > 1) return false;
int t = stoi(s);
return t >= 0 && t <= 255;
}
void dfs(){
for(int i = 1; i < s.size(); ++i){
for(int j = i + 1; j < s.size(); ++j){
for(int k = j + 1; k < s.size(); ++k){
string a = s.substr(0, i);
string b = s.substr(i, j - i);
string c = s.substr(j, k - j);
string d = s.substr(k);
if(check(a) && check(b) && check(c) && check(d)) ++res;
}
}
}
}
signed main(){
cin >> n;
while(n--){
res = 0;
cin >> s;
dfs();
cout << res << "\n";
}
return 0;
}