Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
111734 | 凌艺樽 | 复原 IP 地址 | C++ | 通过 | 100 | 0 MS | 252 KB | 1003 | 2023-11-24 07:38:28 |
#include <bits/stdc++.h> using namespace std; const int N=1e7+10; const int INF=0x3f3f3f3f; char s[300]; int len; int c(int x) { if(x==0) { return 1; } int n=0,m=1; while(x>=m) { n++; m*=10; } return n; } int main() { cin.getline(s,300); len=strlen(s); if(len>12) { return 0; } for(int i=0;i<=2,i<len;i++) { for(int j=i+1;j<=i+3;j++) { for(int k=j+1;k<=j+3,k<len-1;k++) { bool f=1; int ans=0,p=0; for(int l=0;l<len;l++) { ans*=10; ans+=s[l]-'0'; p++; if(l==i || l==j || l==k || l==len-1) { if(ans>255 || c(ans)!=p) { f=0; break; } else { ans=0; p=0; } } } if(f) { for(int l=0;l<len;l++) { cout<<s[l]; if(l==i || l==j || l==k) { cout<<"."; } } cout<<endl; } } } } return 0; }