제출 #106344

#제출 시각아이디문제언어결과실행 시간메모리
106344tincamateiCoin Collecting (JOI19_ho_t4)C++14
8 / 100
324 ms504 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 20;
pair<int, int> points[MAX_N];

int main() {
#ifdef HOME
	FILE *fin = fopen("coin.in", "r");
	FILE *fout = fopen("coin.out", "w");
#else
	FILE *fin = stdin;
	FILE *fout = stdout;
#endif

	int n;
	fscanf(fin, "%d", &n);
	for(int i = 0; i < 2 * n; ++i)
		fscanf(fin, "%d%d", &points[i].first, &points[i].second);
	
	sort(points, points + 2 * n);
	
	long long best = 1LL << 60;

	for(int mask = 0; mask < (1 << (2 * n)); ++mask) {
		long long rez = 0LL;
		int lp = 0, up = 0;

		for(int i = 0; i < 2 * n; ++i)
			if((1 << i) & mask) {
				++lp;
				rez = rez + llabs(points[i].first - lp) + llabs(points[i].second - 1);
			} else {
				++up;
				rez = rez + llabs(points[i].first - up) + llabs(points[i].second - 2);
			}

		if(lp == n && up == n)
			best = min(best, rez);
	}

	fprintf(fout, "%lld", best);

	fclose(fin);
	fclose(fout);
	return 0;
}

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

joi2019_ho_t4.cpp: In function 'int main()':
joi2019_ho_t4.cpp:18:8: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  fscanf(fin, "%d", &n);
  ~~~~~~^~~~~~~~~~~~~~~
joi2019_ho_t4.cpp:20:9: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   fscanf(fin, "%d%d", &points[i].first, &points[i].second);
   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...