Submission #3658898
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define FORE(i, a) for (auto i = a.begin(); i != a.end(); ++i)
#define REPU(i, a, b) for (int i = (a); i < (b); ++i)
#define REPD(i, a, b) for (int i = (a); i > (b); --i)
#define MEM(a, x) memset(a, x, sizeof(a))
#define ALL(a) a.begin(), a.end()
#define UNIQUE(a) a.erase(unique(ALL(a)), a.end())
vector<string> split(const string &s, char c) {
vector<string> v; stringstream ss(s); string x;
while (getline(ss, x, c)) v.push_back(x);
return v;
}
#define DEBUG(args...) { vector<string> _v = split(#args, ','); err(_v.begin(), args); }
void err(vector<string>::iterator it) {}
template<typename T, typename... Args>
void err(vector<string>::iterator it, T a, Args... args) {
cerr << "[DEBUG] " << it -> substr((*it)[0] == ' ', it -> length()) << " = " << a << '\n';
err(++it, args...);
}
typedef long long ll;
const int MOD = 1000000007;
template<class T, class U> inline T tmin(T a, U b) { return (a < b) ? a : b; }
template<class T, class U> inline T tmax(T a, U b) { return (a > b) ? a : b; }
template<class T, class U> inline void amax(T &a, U b) { if (b > a) a = b; }
template<class T, class U> inline void amin(T &a, U b) { if (b < a) a = b; }
template<class T> T gcd(T a, T b) { while (b != 0) { T c = a; a = b; b = c % b; } return a; }
const int N = 1000005;
int x[N], y[N];
int main(int argc, char *argv[]) {
ios_base::sync_with_stdio(false);
int n, D; cin >> n >> D;
if (D > 30) return 0;
vector<int> cnt(D * D, 0);
REPU(i, 0, n) {
cin >> x[i] >> y[i];
x[i] %= D;
y[i] %= D;
cnt[x[i] * D + y[i]]++;
}
int ans = INT_MAX;
int lb = 0, rb = 1000000000;
while (rb - lb > 1) {
int mb = (lb + rb) >> 1;
bool ok(false);
REPU(r, 0, D) {
REPU(c, 0, D) {
bool ok2(true);
REPU(i, 0, D * D) if (cnt[i] > 0) {
int vx = i / D, vy = i % D;
if (vx < r) vx += D;
if (vy < c) vy += D;
if (mb + r < vx || mb + c < vy || ((mb + r - vx) / D + 1) * 1LL * ((mb + c - vy) / D + 1) < cnt[i]) {
ok2 = false; break;
}
}
if (ok2) {
ok = true; break;
}
if (ok) break;
}
}
if (ok) rb = mb;
else lb = mb;
}
cout << rb << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Square Rotation |
| User | rantd |
| Language | C++14 (GCC 5.4.1) |
| Score | 500 |
| Code Size | 2257 Byte |
| Status | WA |
| Exec Time | 34 ms |
| Memory | 4736 KiB |
Judge Result
| Set Name | All | small | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 300 | 500 / 500 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| All | 00_sample_00, 00_sample_01, 00_sample_02, 01_corner2_00, 01_corner2_01, 01_corner2_02, 01_corner2_03, 01_corner_00, 01_corner_01, 01_corner_02, 01_corner_03, 01_corner_04, 01_corner_05, 01_corner_06, 01_corner_07, 01_corner_08, 01_corner_09, 01_corner_10, 01_corner_11, 01_corner_12, 01_corner_13, 01_corner_14, 01_corner_15, 01_corner_16, 01_small1_00, 01_small1_01, 01_small1_02, 01_small1_03, 01_small1_04, 01_small2_00, 01_small2_01, 01_small2_02, 01_small3_00, 01_small3_01, 01_small3_02, 01_small3_03, 01_small3_04, 01_small4_00, 01_small4_01, 01_small4_02, 01_small5_00, 01_small5_01, 01_small5_02, 01_small5_03, 01_small5_04, 02_corner2_00, 02_corner2_01, 02_corner2_02, 02_corner2_03, 02_corner_00, 02_corner_01, 02_corner_02, 02_corner_03, 02_large1_00, 02_large1_01, 02_large1_02, 02_large1_03, 02_large1_04, 02_large2_00, 02_large2_01, 02_large2_02, 02_large3_00, 02_large3_01, 02_large3_02, 02_large3_03, 02_large3_04, 02_large4_00, 02_large4_01, 02_large4_02 |
| small | 01_corner2_00, 01_corner2_01, 01_corner2_02, 01_corner2_03, 01_corner_00, 01_corner_01, 01_corner_02, 01_corner_03, 01_corner_04, 01_corner_05, 01_corner_06, 01_corner_07, 01_corner_08, 01_corner_09, 01_corner_10, 01_corner_11, 01_corner_12, 01_corner_13, 01_corner_14, 01_corner_15, 01_corner_16, 01_small1_00, 01_small1_01, 01_small1_02, 01_small1_03, 01_small1_04, 01_small2_00, 01_small2_01, 01_small2_02, 01_small3_00, 01_small3_01, 01_small3_02, 01_small3_03, 01_small3_04, 01_small4_00, 01_small4_01, 01_small4_02, 01_small5_00, 01_small5_01, 01_small5_02, 01_small5_03, 01_small5_04, 01_corner2_00, 01_corner2_01, 01_corner2_02, 01_corner2_03, 01_corner_00, 01_corner_01, 01_corner_02, 01_corner_03, 01_corner_04, 01_corner_05, 01_corner_06, 01_corner_07, 01_corner_08, 01_corner_09, 01_corner_10, 01_corner_11, 01_corner_12, 01_corner_13, 01_corner_14, 01_corner_15, 01_corner_16, 02_corner2_00, 02_corner2_01, 02_corner2_02, 02_corner2_03, 02_corner_00, 02_corner_01, 02_corner_02, 02_corner_03 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00 | AC | 2 ms | 2304 KiB |
| 00_sample_01 | AC | 2 ms | 2304 KiB |
| 00_sample_02 | AC | 2 ms | 2304 KiB |
| 01_corner2_00 | AC | 3 ms | 2304 KiB |
| 01_corner2_01 | AC | 2 ms | 2304 KiB |
| 01_corner2_02 | AC | 6 ms | 2304 KiB |
| 01_corner2_03 | AC | 17 ms | 4608 KiB |
| 01_corner_00 | AC | 3 ms | 2304 KiB |
| 01_corner_01 | AC | 5 ms | 2304 KiB |
| 01_corner_02 | AC | 7 ms | 2432 KiB |
| 01_corner_03 | AC | 7 ms | 2432 KiB |
| 01_corner_04 | AC | 4 ms | 2304 KiB |
| 01_corner_05 | AC | 10 ms | 2432 KiB |
| 01_corner_06 | AC | 3 ms | 2304 KiB |
| 01_corner_07 | AC | 3 ms | 2304 KiB |
| 01_corner_08 | AC | 14 ms | 4608 KiB |
| 01_corner_09 | AC | 2 ms | 2304 KiB |
| 01_corner_10 | AC | 2 ms | 2304 KiB |
| 01_corner_11 | AC | 2 ms | 2304 KiB |
| 01_corner_12 | AC | 2 ms | 2304 KiB |
| 01_corner_13 | AC | 9 ms | 2432 KiB |
| 01_corner_14 | AC | 3 ms | 2304 KiB |
| 01_corner_15 | AC | 2 ms | 2304 KiB |
| 01_corner_16 | AC | 3 ms | 2304 KiB |
| 01_small1_00 | AC | 30 ms | 4736 KiB |
| 01_small1_01 | AC | 34 ms | 4608 KiB |
| 01_small1_02 | AC | 19 ms | 2432 KiB |
| 01_small1_03 | AC | 31 ms | 4608 KiB |
| 01_small1_04 | AC | 13 ms | 4608 KiB |
| 01_small2_00 | AC | 14 ms | 2432 KiB |
| 01_small2_01 | AC | 3 ms | 2304 KiB |
| 01_small2_02 | AC | 11 ms | 2304 KiB |
| 01_small3_00 | AC | 3 ms | 2304 KiB |
| 01_small3_01 | AC | 3 ms | 2304 KiB |
| 01_small3_02 | AC | 5 ms | 2432 KiB |
| 01_small3_03 | AC | 3 ms | 2304 KiB |
| 01_small3_04 | AC | 3 ms | 2304 KiB |
| 01_small4_00 | AC | 19 ms | 4736 KiB |
| 01_small4_01 | AC | 2 ms | 2304 KiB |
| 01_small4_02 | AC | 3 ms | 2304 KiB |
| 01_small5_00 | AC | 2 ms | 2304 KiB |
| 01_small5_01 | AC | 2 ms | 2304 KiB |
| 01_small5_02 | AC | 2 ms | 2304 KiB |
| 01_small5_03 | AC | 2 ms | 2304 KiB |
| 01_small5_04 | AC | 2 ms | 2304 KiB |
| 02_corner2_00 | AC | 3 ms | 2304 KiB |
| 02_corner2_01 | AC | 5 ms | 2432 KiB |
| 02_corner2_02 | AC | 5 ms | 2432 KiB |
| 02_corner2_03 | AC | 3 ms | 2304 KiB |
| 02_corner_00 | AC | 2 ms | 2304 KiB |
| 02_corner_01 | AC | 4 ms | 2304 KiB |
| 02_corner_02 | AC | 7 ms | 2432 KiB |
| 02_corner_03 | AC | 2 ms | 2304 KiB |
| 02_large1_00 | WA | 1 ms | 256 KiB |
| 02_large1_01 | WA | 1 ms | 256 KiB |
| 02_large1_02 | WA | 1 ms | 256 KiB |
| 02_large1_03 | WA | 1 ms | 256 KiB |
| 02_large1_04 | WA | 1 ms | 256 KiB |
| 02_large2_00 | WA | 1 ms | 256 KiB |
| 02_large2_01 | WA | 1 ms | 256 KiB |
| 02_large2_02 | WA | 1 ms | 256 KiB |
| 02_large3_00 | WA | 1 ms | 256 KiB |
| 02_large3_01 | WA | 1 ms | 256 KiB |
| 02_large3_02 | WA | 1 ms | 256 KiB |
| 02_large3_03 | WA | 1 ms | 256 KiB |
| 02_large3_04 | WA | 1 ms | 256 KiB |
| 02_large4_00 | WA | 1 ms | 256 KiB |
| 02_large4_01 | WA | 1 ms | 256 KiB |
| 02_large4_02 | WA | 1 ms | 256 KiB |