65pts 求hack
查看原帖
65pts 求hack
323183
CLCK楼主2022/11/25 13:56

如题

13,14,17,18,19,20,21WA

不知道问题,求hack

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
vector<string> ss;
bool check(string s) {
    int num[30] = {0}; int cnt = 0;
    int sct = 0, dct = 0;
    int tmp = -1;
    for (int i = 0; i < s.size(); i++) {
        if (cnt > 7) return false;
        if (s[i] >= '0' && s[i] <= '9') {
            if (tmp == -1) tmp = 0;
            tmp = tmp * 10 + s[i] - '0';
            if (i == s.size() - 1) {
                num[cnt++] = tmp;
                tmp = -1;
            }
        } else {
            if (i <= s.size() - 3 && s[i + 1] == '0' && s[i + 2] >= '0' && s[i + 2] <= '9') return false;
            if (i == s.size() - 1 || tmp == -1) return false;
            if (tmp != -1) {
                num[cnt++] = tmp;
                if (cnt <= 4 && num[cnt - 1] > 255) return false;
                if (cnt == 5 && num[cnt - 1] > 65535) return false;
                tmp = -1;
            }
            //cout << tmp << endl;
            if (s[i] == '.') dct ++;
            if (s[i] == ':') {
                sct ++;
                if (dct != 3) return false;
            }
        }
    }
    if (cnt >= 6 || num[4] > 65535 || sct != 1 || dct > 3) return false;
    return true;
}
signed main() {
//    freopen("network4.in", "r", stdin);
//    freopen("n4.out", "w", stdout);
    ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0); 
    cin >> n;
    for (int i = 1; i <= n; i++) {
        string tp;
        cin >> tp;
        string s;
        cin >> s;
        //cout << s << endl;
        if (!check(s)) {
            ss.push_back("-1");
            cout << "ERR" << endl;
        } else {
            if (tp == "Server") {
                if (find(ss.begin(), ss.end(), s) != ss.end()) {
                    ss.push_back("-1");
                    cout << "FAIL" << endl;
                } else {
                    ss.push_back(s);
                    cout << "OK" << endl;
                }
            } else {
                ss.push_back("-1");
                if (find(ss.begin(), ss.end(), s) == ss.end()) {
                    cout << "FAIL" << endl;
                } else {
                    cout << (long long)(find(ss.begin(), ss.end(), s) - ss.begin() + 1) << endl;
                }
            }
        }
    }
    return 0;
}
2022/11/25 13:56
加载中...