蓝桥杯这个XX的练习系统,整天都502 Bad Gateway ,真是无语死了,昨天就一天502 Bad Gateway
思路:因为相向而行的蚂蚁肯定会相遇,而每次相遇都可以看做一次“擦肩而过”,所以只要找出与感冒蚂蚁相向而行的蚂蚁总数即可,而当有一个以上的蚂蚁与感冒蚂蚁相向而行时,感冒蚂蚁就会朝着另一方向传染,而又只要统计另一方向与现在感冒蚂蚁相向而行的总数即可,得数相加即为答案
AC代码:
#include <cstdio> #include <cstring> #include <string> #include <iostream> #include <algorithm> #include <cmath> using namespace std; bool cmp(int a, int b) { return abs(a) < abs(b); } int a[55]; int main() { int n; while(scanf("%d", &n) != EOF) { for(int i = 0; i < n; i++ ) { scanf("%d", &a[i]); } int t = a[0]; sort(a, a + n, cmp); int ans = 1; if(t > 0) { int flag = 0; for(int i = n - 1; a[i] != t; i--) { if(a[i] < 0) { flag = 1; ans++; } } if(flag) { for(int i = 0; a[i] != t; i++) { if(a[i] > 0) ans++; } } } else if(t < 0) { int flag = 0; for(int i = 0; a[i] != t; i++) { if(a[i] > 0) { flag = 1; ans++; } } if(flag) { for(int i = n - 1; a[i] != t; i--) if(a[i] < 0) ans++; } } printf("%d\n", ans); } return 0; }
原文地址:http://blog.csdn.net/u014355480/article/details/44220145