题面:P2234 [HNOI2002]营业额统计

题解:随便写写

注意:cmath中abs函数返回的是一个浮点数,在bzoj上会ce

代码:

 

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<set>
 5 #define abs(a) ((a)>=0?(a):(-a))
 6 #define ll long long
 7 using namespace std;
 8 ll ans,N,x,a,b,c;
 9 set<ll>A;
10 set<ll>::iterator iter;
11 int main(){
12     scanf("%lld",&N);
13     for(int i=1;i<=N;i++){
14         scanf("%lld",&x);
15         iter=A.lower_bound(x);
16         if(i!=1){
17             a=abs(*iter-x);
18             if(iter!=A.begin()){
19                 iter--;
20                 b=abs(x-*iter);
21                 if(a<b)ans+=a;else ans+=b;
22             }
23             else ans+=a;
24         }
25         else ans=x;
26         A.insert(x);
27     }
28     printf("%lld\n",ans);
29     return 0;
30 }

 


By:AlenaNuna

 

相关文章:

  • 2021-12-02
  • 2021-12-27
  • 2021-09-02
  • 2021-10-02
  • 2021-11-12
  • 2021-07-17
  • 2021-09-16
  • 2021-12-02
猜你喜欢
  • 2022-03-07
  • 2022-02-14
  • 2021-06-25
  • 2021-08-15
  • 2021-08-13
相关资源
相似解决方案