Submission #331800

#TimeUsernameProblemLanguageResultExecution timeMemory
331800arnold518Coin Collecting (JOI19_ho_t4)C++14
100 / 100
88 ms8940 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 2e5;

int N;
int A[MAXN+10][10];
ll ans=0;

int main()
{
	scanf("%d", &N);
	for(int i=1; i<=N+N; i++)
	{
		int x, y;
		scanf("%d%d", &x, &y);
		if(x<1) ans+=1-x, x=1;
		if(x>N) ans+=x-N, x=N;
		if(y<1) ans+=1-y, y=1;
		if(y>2) ans+=y-2, y=2;
		A[x][y]++;
	}

	for(int i=1; i<=N; i++)
	{
		A[i][1]--;
		A[i][2]--;
	}

	for(int i=1; i<N; i++)
	{
		if(A[i][1]>=0 && A[i][2]>=0)
		{
			ans+=A[i][1];
			ans+=A[i][2];
			A[i+1][1]+=A[i][1];
			A[i+1][2]+=A[i][2];
		}
		else if(A[i][1]<=0 && A[i][2]<=0)
		{
			ans-=A[i][1];
			ans-=A[i][2];
			A[i+1][1]+=A[i][1];
			A[i+1][2]+=A[i][2];
		}
		else if(abs(A[i][1])<=abs(A[i][2]))
		{
			ans+=abs(A[i][1]);
			A[i][2]+=A[i][1];
			ans+=abs(A[i][2]);
			A[i+1][2]+=A[i][2];
		}
		else
		{
			ans+=abs(A[i][2]);
			A[i][1]+=A[i][2];
			ans+=abs(A[i][1]);
			A[i+1][1]+=A[i][1];	
		}
	}
	ans+=abs(A[N][1]);
	//assert(A[N][1]==0 && A[N][2]==0);
	printf("%lld\n", ans);
}

Compilation message (stderr)

joi2019_ho_t4.cpp: In function 'int main()':
joi2019_ho_t4.cpp:16:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   16 |  scanf("%d", &N);
      |  ~~~~~^~~~~~~~~~
joi2019_ho_t4.cpp:20:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   20 |   scanf("%d%d", &x, &y);
      |   ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...