Submission #1328971

#TimeUsernameProblemLanguageResultExecution timeMemory
1328971boclobanchatCoin Collecting (JOI19_ho_t4)C++20
100 / 100
32 ms1212 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+5;
int cnt[2][MAXN];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    long long ans=0,cnta=0,cntb=0;
    for(int i=1;i<=n*2;i++)
    {
    	int x,y;
    	cin>>x>>y;
    	if(y<=1) ans+=1-y,y=0;
    	else ans+=y-2,y=1;
    	if(x<1) ans+=1-x,x=1;
    	if(x>n) ans+=x-n,x=n;
    	cnt[y][x]++;
	}
	for(int i=1;i<=n;i++)
	{
		cnt[0][i]--,cnt[1][i]--;
		cnta+=cnt[0][i],cntb+=cnt[1][i];
		ans+=abs(cnta+cntb);
		if(cnta+cntb>0)
		{
			if(cnta<0) cntb+=cnta,ans-=cnta,cnta=0;
			else if(cntb<0) cnta+=cntb,ans-=cntb,cntb=0;
		}
		else
		{
			if(cnta>0) cntb+=cnta,ans+=cnta,cnta=0;
			else if(cntb>0) cnta+=cntb,ans+=cntb,cntb=0;
		}
	}
	cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...