답안 #93119

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
93119 2019-01-06T14:22:44 Z Makhsud Chessboard (IZhO18_chessboard) C++17
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

ll n, k, cnt, x, y, xx, yy;
ll a[3][3];
ll di[50005][5][5];
void subt1()
{
	ll mn = INT_MAX;
	for ( int i = 1; i < n; i ++ ){
		if ( n % i == 0 ) {
			ll c = 0;
			for ( int j = 1; j <= (n/i); j ++ ) {
				if ( j % 2 ) {
					c += (i*i) * ( ( n/i ) / 2 );
				}
				else {
					c += (i*i) * ( ( ( n/i ) + 1 ) / 2 );
				}
			}
			mn = min( mn, c );
		}
	}
	cout << mn;
	exit(0);
}
void subt2()
{
	ll c1, c2;
	c1 = c2 = 0;
	for ( int i = 1; i <= k; i ++ ) {
		cin >> x >> y >> xx >> yy;
		a[x%2][y%2] ++;
	}
	c1 = (n*n)/2;
	c2 =  c1 + 1;

	c1 = c1 - ( a[1][0] + a[0][1] );
	c1 = c1 + ( a[1][1] + a[0][0] );

	c2 = c2 - ( a[1][1] + a[0][0] );
	c2 = c2 + ( a[1][0] + a[0][1] );

	cout << min( c1, c2 );
	exit(0);
}
void subt_3_4_5()
{
	ll mn = INT_MAX, a1, a2;
	vector <ll> d(0);
	for ( int i = 1; i < n; i ++ ){
		if ( n % i == 0 ) {
			d.push_back( (ll) i );
		}
	}
	for ( int i = 1; i <= k; i ++ ){
		cin >> x >> y >> xx >> yy;
		for ( auto e: d ) {
			ll r, c;
			r = (x/e) + ( (x%e) && 1 );
			c = (y/e) + ( (y%e) && 1 );
			di[e][r%2][c%2] ++;
		}
	}
	for ( auto e: d ) {
		a1 = a2 = 0;
		for ( int i = 1; i <= (n/e); i ++ ) {
			if ( i % 2 ) {
				a1 += (e*e) * ((n/e)/2);
				a2 += (e*e) * (((n/e)+1)/2);
			}
			else {
				a2 += (e*e) * ((n/e)/2);
				a1 += (e*e) * (((n/e)+1)/2);
			}
		}
		a1 -= di[e][1][0] + di[e][0][1];
		a1 += di[e][0][0] + di[e][1][1];
		a2 += di[e][1][0] + di[e][0][1];
		a2 -= di[e][0][0] + di[e][1][1];
		mn = min ( mn, min ( a1, a2 ) );
	}
	cout << mn;
	exit(0);
}
int main()
{
	cin >> n >> k;
	for ( int i = 1; i <= n; i ++ ) {
		if ( n % i == 0 ) cnt ++;
	}
	if ( cnt == 2 ) subt2();
	if ( k > 0 ) subt_3_4_5();
	subt1()
}

Compilation message

chessboard.cpp: In function 'int main()':
chessboard.cpp:96:1: error: expected ';' before '}' token
 }
 ^