1 #include <iostream> 2 #include<vector> 3 #include<cstdio> 4 #include <string> 5 using namespace std; 6 #define DEBUG 7 void print(vector<int>&nums, int length) 8 { 9 for (int i = 0; i < length; i++) 10 { 11 if (i!=length-1) 12 cout << nums[i] << " "; 13 else cout << nums[i] << endl; 14 } 15 } 16 bool isvalid(vector<int>&nums, int length, int index) 17 { 18 if (index>=length - 2 || length <= 2 || !(nums[index] == nums[index + 1] && nums[index + 2] == nums[index + 1]))return false; 19 return true; 20 } 21 void process(vector<int>&nums, int length) 22 { 23 if (length <= 0)return; 24 vector<int>tmp; 25 int cnt = 0; 26 int T = -1; 27 int len1 = length, len2 = 0; 28 while (true) 29 { 30 if (len1 == len2) 31 { 32 break; 33 } 34 len1 = nums.size(); 35 for (int i = 0; i < nums.size(); ) 36 { 37 if (isvalid(nums, nums.size(), i)) 38 { 39 T = nums[i]; 40 i = i + 3; 41 if (i >= nums.size())break; 42 continue; 43 } 44 else if (T == nums[i]) 45 { 46 i++; 47 continue; 48 } 49 else 50 { 51 tmp.push_back(nums[i]); 52 i++; 53 T = -1; 54 } 55 } 56 nums = tmp; 57 len2 = nums.size(); 58 tmp.clear(); 59 } 60 } 61 int main() 62 { 63 #ifdef DEBUG 64 FILE *in; 65 FILE *out; 66 freopen_s(&in,"in.txt", "r", stdin); 67 freopen_s(&out, "out.txt", "w", stdout); 68 #endif 69 //数据读取 70 vector<int>nums(15); 71 int length = nums.size(); 72 for (int i = 0; i < length; i++) 73 { 74 cin >> nums[i]; 75 } 76 //数据处理 77 process(nums,nums.size()); 78 79 //数据输出 80 print(nums,nums.size()); 81 82 83 84 #ifdef DEBUG 85 fclose(in); 86 fclose(out); 87 #endif 88 return 0; 89 }