답안 #121088

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
121088 2019-06-26T05:34:03 Z 윤지학(#2973) Coin Collecting (JOI19_ho_t4) C++14
0 / 100
2 ms 384 KB
#pragma GCC optimize("O3")
//#pragma GCC target("arch=skylake")
#include <cstdio>
#include <algorithm>

#define x first
#define y second

using namespace std;

typedef pair<int, int> pii;

int n;
pii a[2002];

inline int abs(int x) {
	return x < 0 ? -x : x;
}

int main() {
	long long s = 0;
	int i, j, k, l, m;
	scanf("%d", &n);
	for (i = 0; i < n + n; i++) {
		scanf("%d%d", &a[i].x, &a[i].y);
		if (a[i].x < 1) {
			s += 1 - a[i].x;
			a[i].x = 1;
		}
		if (a[i].x > n) {
			s += a[i].x - n;
			a[i].x = n;
		}
		if (a[i].y < 1) {
			s += 1 - a[i].y;
			a[i].y = 1;
		}
		if (a[i].y > 2) {
			s += a[i].y - 2;
			a[i].y = 2;
		}
	}
	sort(a, a + n + n);
	for (i = 0; i < n + n; i++) s += abs(a[i].x - (i >> 1) - 1);
	for (i = 0; i < n + n;) {
		k = l = 0;
		for (j = i; j < n + n && (a[i].x - (i >> 1) - 1ll) * (a[j].x - (j >> 1) - 1ll) >= 0; j++) {
			if (a[j].y == 1) k++;
			else l++;
		}
		while (i < j) {
			if (i & 1) {
				if (m == 0) {
					if (k) k--;
					else {
						l--;
						s++;
					}
				}
				else {
					if (l) l--;
					else {
						k--;
						s++;
					}
				}
			}
			else {
				if (k) {
					k--;
					m = 1;
				}
				else {
					l--;
					m = 0;
				}
			}
			i++;
		}
	}
	printf("%lld\n", s);
}

Compilation message

joi2019_ho_t4.cpp: In function 'int main()':
joi2019_ho_t4.cpp:23:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
joi2019_ho_t4.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &a[i].x, &a[i].y);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
joi2019_ho_t4.cpp:53:5: warning: 'm' may be used uninitialized in this function [-Wmaybe-uninitialized]
     if (m == 0) {
     ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 256 KB Output is correct
6 Correct 2 ms 256 KB Output is correct
7 Incorrect 2 ms 384 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 256 KB Output is correct
6 Correct 2 ms 256 KB Output is correct
7 Incorrect 2 ms 384 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 256 KB Output is correct
6 Correct 2 ms 256 KB Output is correct
7 Incorrect 2 ms 384 KB Output isn't correct
8 Halted 0 ms 0 KB -