제출 #116515

#제출 시각아이디문제언어결과실행 시간메모리
116515faustaadpIdeal city (IOI12_city)C++17
0 / 100
1070 ms5076 KiB
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll i,has,mo=1e9,j;
ll x[101010];
ll y[101010];
ll p[101010];
ll jar[101010];
vector<ll> v[101010];
int DistanceSum(int N, int *X, int *Y) 
{
	for(i=0;i<N;i++)
	{
		x[i]=X[i];
		y[i]=Y[i];
	//	cout<<x[i]<<" "<<y[i]<<"\n";
	}
	if(1)
	{
		for(i=0;i<N;i++)
			for(j=0;j<N;j++)
				if(abs(x[i]-x[j])+abs(y[i]-y[j])==1)
					v[i].pb(j);
		for(i=0;i<N;i++)
		{
			memset(jar,-1,sizeof(jar));
			queue<ll> q;
			q.push(i);
			jar[i]=0;
			while(!q.empty())
			{
				ll u=q.front();
				q.pop();
				for(j=0;j<v[u].size();j++)
					if(jar[v[u][j]]==-1)
					{
						jar[v[u][j]]=jar[v[u][j]]+1;
						q.push(v[u][j]);
					}
			}
			for(j=0;j<N;j++)
				has+=jar[j];
		}
	}
	if(1)
	{
		sort(x,x+N);
		sort(y,y+N);
		p[0]=x[0];for(i=1;i<N;i++)p[i]=p[i-1]+x[i];
		for(i=0;i<N;i++)
			has+=(p[N-1]-p[i])-(x[i]*(N-i-1));
		p[0]=y[0];for(i=1;i<N;i++)p[i]=p[i-1]+y[i];
		for(i=0;i<N;i++)
			has+=(p[N-1]-p[i])-(y[i]*(N-i-1));
	}
  	return has%mo;
}

컴파일 시 표준 에러 (stderr) 메시지

city.cpp: In function 'int DistanceSum(int, int*, int*)':
city.cpp:38:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(j=0;j<v[u].size();j++)
             ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...