#include <bits/stdc++.h>
using namespace std;
int a[8], p, mxa;
string fl[8];
int main() {
fill(fl, fl + 7, ":");
for (int &i : a)
cin >> hex >> i, cin.ignore();
for (int i = 0; i < 8; i++) {
int cnt = 0;
for (int j = i; j < 8 && !a[j]; j++) cnt++;
if (cnt > mxa) p = i, mxa = cnt;
}
for (int i = p; i < p + mxa; i++)
a[i] = 0x10000, fl[i] = "";
fl[p] = ":";
if (*a == 0x10000) cout << ':';
for (int i = 0; i < 8; i++) {
if (a[i] != 0x10000)
cout << hex << a[i];
cout << fl[i];
}
}
我的思路好像和题解区的不大一样。