蓝桥杯这个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