80玄关,RE#1#9
查看原帖
80玄关,RE#1#9
1645285
liuxuyan123楼主2025/7/2 17:39
#include<bits/stdc++.h>
using namespace std;
int a[100];
int maxn = -1,max_where = 10;
int main(){
	scanf("%x:%x:%x:%x:%x:%x:%x:%x",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);
	for(int i = 1;i <= 8;i++){
		if(a[i] == 0){
			int j = i,sum = 0,maxn2 = maxn;
			while(a[j] == 0){
				sum++;
				maxn2 = max(maxn2,sum);
				j++;
			}
			if(maxn2 > maxn){
				max_where = i;
				maxn = maxn2;
			}
		}
	}
	//cout << maxn << " " << max_where << endl;
	//if(maxn == 1) max_where = 10;
	//cout << maxn << endl;
	if(maxn >= 8){
		cout << "::" << endl;
		return 0;
	}
	for(int i = 1;i <= 8;i++){
		if(i != 1) cout << ":";
		if(max_where == i && i == 1) cout << ":";
		if(i == max_where){
			cout << ":";
			i += maxn;
			//continue;
		}
		printf("%x",a[i]);
	} 
	return 0;
}

样例都过了,也测了极端数据,就挺无语的。。。

2025/7/2 17:39
加载中...