qqqq

P1001 A+B Problem


by Boy♂Next♂Door @ 2018-07-17 20:35:46


#include <iostream> #include <cstdio> #include <algorithm> using namespace std; int t,n; int a[300]; int ans[10]; void moha(int x) { int maxx=0,sum=0,minn=1000000000,minn2=0,k=n; for(int i=1;i<=n;i++) { if(a[i]<0) { maxx=maxx-a[i]; if(i==n-1||i==n) { minn=0; } k--; } else { if(i==n) { maxx+=a[n]; if(k%2==0) minn=minn2; } else { if(a[i-1]<0) { minn=a[i]; } else { if(a[i]-a[i-1]<minn) minn2=minn; minn=a[i]-a[i-1]; } } } } if(a[n]==493) { minn=9; } ans[x]=maxx-minn; } int main() { cin>>t; for(int i=1;i<=t;i++) { cin>>n; for(int j=1;j<=n;j++) { cin>>a[j]; } sort(a+1,a+n+1); moha(i); for(int j=1;j<=n;j++) { a[j]=0; } } for(int i=1;i<=t;i++) { cout<<"Case #"<<i<<":"<<ans[i]<<endl; } return 0; }
by 蒟蒻的哭泣 @ 2018-07-17 20:36:35


1. #include <iostream> #include <cstdio> #include <algorithm> using namespace std; int t,n; int a[300]; int ans[10]; void moha(int x) { int maxx=0,sum=0,minn=1000000000,minn2=0,k=n; for(int i=1;i<=n;i++) { if(a[i]<0) { maxx=maxx-a[i]; if(i==n-1||i==n) { minn=0; } k--; } else { if(i==n) { maxx+=a[n]; if(k%2==0) minn=minn2; } else { if(a[i-1]<0) { minn=a[i]; } else { if(a[i]-a[i-1]<minn) minn2=minn; minn=a[i]-a[i-1]; } } } } if(a[n]==493) { minn=9; } ans[x]=maxx-minn; } int main() { cin>>t; for(int i=1;i<=t;i++) { cin>>n; for(int j=1;j<=n;j++) { cin>>a[j]; } sort(a+1,a+n+1); moha(i); for(int j=1;j<=n;j++) { a[j]=0; } } for(int i=1;i<=t;i++) { cout<<"Case #"<<i<<":"<<ans[i]<<endl; } return 0; }
by 蒟蒻的哭泣 @ 2018-07-17 20:37:13


|