Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
111099 陈志轩 复原 IP 地址 C++ 解答错误 33 0 MS 248 KB 1165 2023-11-18 10:25:15

Tests(1/3):


#include<bits/stdc++.h> using namespace std; int n; string s,res[5]; void dfs(int x,string now,int su,int cnt){ if (cnt >= 3){ int all = res[0].size() + res[1].size() + res[2].size() + n - x; //cout<<"all:"<<all<<" n:"<<n<<'\n'; if (all != n){ return ; } //cout<<res[0]<<'.'<<res[1]<<'.'<<res[2]<<'\n'; bool qdl = true; int sum = 0; if (x >= n){ return ; } for (int i = x;i < n;i++){ if (s[i] == '0' && qdl && n - 1 - x >= 1){ return ; } else{ qdl = false; } sum = sum * 10 + s[i] - '0'; if (sum > 255 || sum < 0){ return ; } } for (int i = 0;i < 3;i++){ cout<<res[i]<<'.'; } for (int i = x;i < n;i++){ cout<<s[i]; } cout<<'\n'; return ; } if (x >= n){ return ; } if (now == "0"){ res[cnt] = now; dfs(x + 1,"" + s[x],0,cnt + 1); res[cnt] = ""; return ; } su = su * 10 + s[x] - '0'; if (su >= 0 && su <= 255){ dfs(x + 1,now + s[x],su,cnt); res[cnt] = now + s[x]; dfs(x + 1,"",0,cnt + 1); res[cnt] = ""; } else{ return ; } } signed main(){ cin>>s; n = s.size(); dfs(0,"",0,0); return 0; }


测评信息: