中山做网站哪家便宜,手机开发游戏的软件,有哪些推广平台,北京哪些做网站的公司好[蓝桥杯] 蚂蚁感冒 峰值内存消耗 256M CPU消耗 1000ms 【题目描述 - Problem Description】 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左#xff0c;有的朝右。 每只蚂蚁都只能沿着杆子向前爬#xff0c;速度是1厘米/秒。 当两只蚂蚁碰面时#xff0…[蓝桥杯] 蚂蚁感冒 峰值内存消耗 256M CPU消耗 1000ms 【题目描述 - Problem Description】 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左有的朝右。 每只蚂蚁都只能沿着杆子向前爬速度是1厘米/秒。 当两只蚂蚁碰面时它们会同时掉头往相反的方向爬行。 这些蚂蚁中有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时会把感冒传染给碰到的蚂蚁。 请你计算当所有蚂蚁都爬离杆子时有多少只蚂蚁患上了感冒。 【输入 - Input】 【输出 - Output】 第一行输入一个整数n (1 n 50), 表示蚂蚁的总数。 接着的一行是n个用空格分开的整数 Xi (-100 Xi 100), Xi的绝对值表示蚂蚁离开杆子左边端点的距离。正值表示头朝右负值表示头朝左数据中不会出现0值也不会出现两只蚂蚁占用同一位置。其中第一个数据代表的蚂蚁感冒了。 要求输出1个整数表示最后感冒蚂蚁的数目。 【输入样例 1 - Sample Input 1】 【输出样例 1 - Sample Output 1】 35 -2 81 【输入样例 2 - Sample Input 2】 【输出样例 2 - Sample Output 2】 5-10 8 -20 12 253 【题解】 模拟画个图出来大概就清楚了约等于计数排序。 例如 5 -10 8 -20 12 25 朝左的统计比10小的朝右的统计比10大的然后个数相加就是染病蚂蚁的答案。 其他情况就以此类推上面8与10配对如果没有配对直接输出1。 【代码 C】 1 #include cstdio2 int main(){3 int R, L, Ri, Li, n, a, i;4 scanf(%d%d, n, a);5 if (a 0) R a, Ri 1, Li 0;6 else L a, Li 1, Ri 0;7 if (Ri){8 for (i 1; i n; i){9 scanf(%d, a);
10 if (a0 a R) Ri;
11 else if (a 0 a R 0) Li;
12 }
13 if (Li) printf(%d, Ri Li);
14 else puts(1);
15 }
16 else{
17 for (i 1; i n; i){
18 scanf(%d, a);
19 if (a0 a L 0) Ri;
20 else if (a L) Li;
21 }
22 if (Ri) printf(%d, Ri Li);
23 else puts(1);
24 }
25 return 0;
26 } 【可测评地址】http://acmore.cc/problem.php?id1614转载于:https://www.cnblogs.com/Simon-X/p/5304467.html