| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
求高手帮忙看下代码,不知道哪里没有考虑到,一直是WA,我有用__int64,万分感谢#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
char num[1000010];
int main () {
int cases, i, l, a, b, x, y;
__int64 s;
scanf("%d", &cases);
while(cases--) {
scanf("%s", num);
l = strlen(num);
a = b = x = y = 0;
s = 0;
for(i = 0; i < l; i++) {
if(num[i] == '5')
break;
if(num[i] == '8') {
b++;
}
if(num[i] == '2') {
b--;
}
if(num[i] == '6') {
a++;
}
if(num[i] == '4') {
a--;
}
if(num[i] == '9') {
a++;
b++;
}
if(num[i] == '7') {
a--;
b++;
}
if(num[i] == '3') {
a++;
b--;
}
if(num[i] == '1') {
a--;
b--;
}
s = s + x * b - a * y;
x = a;
y = b;
//printf("area:%I64d\n", s);
}
if(s < 0)
s = s * -1;
if(s % 2 == 0)
printf("%I64d\n", s / 2);
else
printf("%I64d.5\n", s / 2);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator