/* 第一题 100%AC (异或优化半天还是30%) */ #include <stdio.h> #include <iostream> #include <vector> #include <string> #include <unordered_map> #include <algorithm> using namespace std ; int main() {     int n;     vector < int > nums;     // 注意 while 处理多个 case     while ( cin >> n) {         nums. clear ();         for ( int i = 0 ; i < n; ++i) {             int element;             cin >> element;             nums. push_back (element);         }         sort (nums. begin (), nums. end ());         int sum = 0 ;         int count = 1 ;         int flag = true ;         for ( int i = 1 ; i < n; ) {             int temp = nums[ i ] - nums[ i - 1 ];             if (temp <= 10 ) {                 ++i;                 ++count;                 flag = true ;                 if (count == 3 ) {                     if (i >= n) {                         flag = false ;                         break ;                     }                     ++i;                     count = 1 ;                     flag = true ;                 }             } else if (temp > 10 && temp <= 20 ) {                 if (count == 1 ) {                     i += 2 ;                     ++sum;                     flag = false ;                 } else if (count == 2 ) {                     ++i;                     count = 1 ;                     ++sum;                     flag = true ;                 }             } else if (temp > 20 ) {                 if (count == 1 ) {                     ++i;                     sum += 2 ;                 } else if (count == 2 ) {                     ++i;                     count = 1 ;                     ++sum;                 }                 flag = true ;             }         }         if (count == 1 && flag) {             sum += 2 ;         }         if (count == 2 ) ++sum;         cout << sum << endl ;     }        return 0 ; }
点赞 评论

相关推荐

08-30 15:51
已编辑
蚌埠坦克学院 Java
狸猫换offer:感觉hr写这段字的时候充满怨气
lastday知无不言
点赞 评论 收藏
分享
菠落蜜:这个是系统自动投的,不是hr主动打招呼。更抽象的还有ai回复
我的秋招日记
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务