CF 221div2 A. Lever

A. Lever

题目:http://codeforces.com/contest/376/problem/A

题意:杠杆原理

比两边的重量

input

=^==

output

balance

9===^==1

output

left

2==^7==

right

41^52==

balance

PS:这题我大一刚来的时候做过,当时没用__int64存数据,找半天不知道错哪

今天又做了一遍又错这了,不过这回看出来了,哎,也就这点长进了!

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstdlib>
 5 #include<cstring>
 6 using namespace std;
 7 #define M 1000009
 8 char s[M];
 9 struct node{
10     __int64 x;
11     __int64 y;
12 };
13 node p[M];
14 int main()
15 {
16     char a;
17     int i=0,k=0;
18     __int64 bal;
19     scanf("%c",&a);
20     while(a!='
')
21     {
22         if(a=='^')
23         bal=i;
24         if(a!='^' && a!='=')
25         {
26             p[k].x=a-'0';
27             p[k].y=i;
28             k++;
29         }
30         scanf("%c",&a);
31         i++;
32     }
33     int j;
34     __int64 sum=0,num=0;
35     for(j=0;j<k;j++)
36     {
37         if(p[j].y<bal)
38         {
39             sum+=(bal-p[j].y)*p[j].x;
40         }
41         else
42         num+=(p[j].y-bal)*p[j].x;
43     }
44     if(sum==num)
45     printf("balance
");
46     else if(sum>num)
47     printf("left
");
48     else if(sum<num)
49     printf("right
");
50     return 0;
51 }
View Code
原文地址:https://www.cnblogs.com/xuesen1995/p/4129347.html