답안 #234817

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
234817 2020-05-25T17:57:39 Z crossing0ver 이상적인 도시 (IOI12_city) C++17
55 / 100
260 ms 18456 KB
#include<bits/stdc++.h>
using namespace std;
int vis[100001],x,y,t,help,d[1000001];
map<pair<int,int>,int> mp;
vector<int> adj[100000];
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};
pair<int,int> A[100000];
int DistanceSum(int N, int *X, int *Y) {
  int sum = 0;
  for (int i = 0; i < N; i++) 
  	mp[{X[i],Y[i]}] = i + 1, A[i] = {X[i],Y[i]};
  for (int i = 0; i < N;i ++) {
  	for (int j = 0; j < 4; j++) {
  		x = X[i] + dx[j];
  		y = Y[i] + dy[j];
  		t = mp[{x,y}];
		if (t) adj[i].push_back(t-1);
	  } 
  }	 if ( N <= 5000) {
  for (int i = 0; i < N; i++) {
  	help++;
  	queue<int> q;
  	q.push(i);
  	d[i] = 0;
  	vis[i] = help;
  	while (!q.empty()) {
  		x = q.front();
  		q.pop();
  		sum += d[x];
  		for (int j:adj[x]) {
  			if (vis[j]  != help ) {
  				vis[j] = help;
  				d[j] = d[x] + 1;
  				q.push(j);
			  }
		  }
		  if (sum >= 1e9) sum -= 1e9;
	  }     }  	return sum/2;}
	  sort (A, A + N);
	  int s = 0;
	  for (int i = 0; i < N; i ++) {
	  	s += A[i].first;
	  	if (s >= 1e9) s-= 1e9;
	  	sum = (1ll*(i + 1)*A[i].first - s + sum)%(1000000000);
	  	if (sum < 0) sum += 1e9;
	  	swap(A[i].first,A[i].second);
	  }
	  sort (A , A+ N);
	  s = 0;
	  for (int i = 0; i < N; i ++) {
	  	s += A[i].first;
	  	if (s >= 1e9) s-= 1e9;
	  	sum = (1ll*(i + 1)*A[i].first - s + sum)%(1000000000);
	  	if (sum < 0) sum += 1e9;
	  	swap(A[i].first,A[i].second);
	  }
	
	  
	  
	  
	    return sum;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 7 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 7 ms 2688 KB Output is correct
9 Correct 6 ms 2688 KB Output is correct
10 Correct 7 ms 2688 KB Output is correct
11 Correct 7 ms 2688 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 2816 KB Output is correct
2 Correct 32 ms 2816 KB Output is correct
3 Correct 78 ms 3028 KB Output is correct
4 Correct 66 ms 2944 KB Output is correct
5 Correct 115 ms 3192 KB Output is correct
6 Correct 108 ms 2944 KB Output is correct
7 Correct 123 ms 3072 KB Output is correct
8 Correct 108 ms 2944 KB Output is correct
9 Correct 108 ms 3020 KB Output is correct
10 Correct 103 ms 2944 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 37 ms 4992 KB Output is correct
2 Correct 37 ms 5112 KB Output is correct
3 Correct 99 ms 8800 KB Output is correct
4 Correct 93 ms 8696 KB Output is correct
5 Correct 260 ms 14712 KB Output is correct
6 Correct 240 ms 14584 KB Output is correct
7 Correct 249 ms 15100 KB Output is correct
8 Correct 232 ms 14712 KB Output is correct
9 Correct 220 ms 14972 KB Output is correct
10 Correct 231 ms 18456 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 42 ms 6144 KB Output isn't correct
2 Halted 0 ms 0 KB -