Submission #1180726

#TimeUsernameProblemLanguageResultExecution timeMemory
1180726user736482Coin Collecting (JOI19_ho_t4)C++20
100 / 100
26 ms4060 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back #define ff first #define ss second #define MOD 1000000009 #define INF 1000000019 #define INFL 1000000000000000099 ll n,q,s,t,a,b,c,d,ans,bst,k,e,m,pier,h,w,u; ll l1[100007],l2[100007]; vector<ll>v,v2; int main() { ios_base::sync_with_stdio(0);cin.tie(0); cin>>n; for(ll i=0;i<2*n;i++){ cin>>a>>b; ans+=abs(a-min(n,max(1LL,a))); if(b>1){ ans+=b-2; v2.pb(min(n,max(1LL,a))); l2[min(n,max(1LL,a))]++; } else{ ans-=b-1; v.pb(min(n,max(1LL,a))); l1[min(n,max(1LL,a))]++; } } for(ll i=1;i<=n;i++){ // cout<<l1[i]<<" "<<l2[i]<<"\n"; }//cout<<"\n\n"; for(ll i=n;i>=1;i--){ l1[i]--; l2[i]--; // cout<<ans<<" "<<l1[i]<<" "<<l2[i]<<"\n"; if(l1[i]>0 && l2[i]<0){ ans+=min(l1[i],-l2[i]); ll ak=min(l1[i],-l2[i]); l2[i]+=min(l1[i],-l2[i]); l1[i]-=ak; } if(l1[i]<0 && l2[i]>0){ ans+=min(-l1[i],l2[i]); ll ak=min(-l1[i],l2[i]); l1[i]+=min(-l1[i],l2[i]); l2[i]-=ak; } if(l1[i]>0 || l2[i]>0){ l1[i-1]+=l1[i]; l2[i-1]+=l2[i]; ans+=l1[i]+l2[i]; } else{ l1[i-1]+=l1[i]; l2[i-1]+=l2[i]; ans-=l1[i]; ans-=l2[i]; } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...