求问为什么用min

P1286 两数之和

az标题打错字了咋办
by 蒟蒻丁 @ 2020-11-22 17:12:20


@[蒟蒻丁](/user/251882) 代码放完
by 斗神_君莫笑 @ 2020-11-22 17:27:19


@[蒟蒻丁](/user/251882) C++日常灵异事件||您日常typo事件
by int64 @ 2020-11-22 17:29:55


``` #include<iostream> #include<cstdio> #include<algorithm> #include<set> #define ll long long using namespace std; ll n,a[10001],ans[10010],top,sum,m,minn=1e12; multiset<ll>::iterator it; multiset<ll>st; bool pool=0; bool check(){ for(ll i=2;i<=n;i++){ ans[i]=*st.begin()-ans[1]; for(ll j=1;j<i;j++){ it=st.find(ans[j]+ans[i]); if(it==st.end())return 0; st.erase(it); } } return 1; } int main(){ while(~scanf("%lld",&n)){ minn=1e10; m=n*(n-1)/2; pool=0; for(ll a1,i=1;i<=m;i++){ scanf("%lld",&a[i]); // minn=min(minn,a1); } sort(1+a,1+a+m); for(ll a1=0;a1<=(a[1]/2);a1++){ st.clear(); ans[1]=a1; for(ll i=1;i<=m;i++){ st.insert(a[i]); } if(check()){ for(ll i=1;i<=n;i++){ printf("%lld ",ans[i]); } putchar('\n'); pool=1; break; } } if(!pool)printf("Impossible\n"); } } ``` AC的 ``` #include<iostream> #include<cstdio> #include<algorithm> #include<set> #define ll long long using namespace std; ll n,a[10001],ans[10010],top,sum,m,minn=1e12; multiset<ll>::iterator it; multiset<ll>st; bool pool=0; bool check(){ for(ll i=2;i<=n;i++){ ans[i]=*st.begin()-ans[1]; for(ll j=1;j<i;j++){ it=st.find(ans[j]+ans[i]); if(it==st.end())return 0; st.erase(it); } } return 1; } int main(){ while(~scanf("%lld",&n)){ minn=1e10; m=n*(n-1)/2; pool=0; for(ll a1,i=1;i<=m;i++){ scanf("%lld",&a[i]); minn=min(minn,a1); } // sort(1+a,1+a+m); for(ll a1=0;a1<=(minn/2);a1++){ st.clear(); ans[1]=a1; for(ll i=1;i<=m;i++){ st.insert(a[i]); } if(check()){ for(ll i=1;i<=n;i++){ printf("%lld ",ans[i]); } putchar('\n'); pool=1; break; } } if(!pool)printf("Impossible\n"); } } ``` WA的
by 蒟蒻丁 @ 2020-11-24 12:20:31


|