#include <bits/stdc++.h>
using namespace std;
typedef long long int64;
#define FORIT(it, v) for (typeof((v).begin()) it = (v).begin(); it != (v).end(); ++it)
class BoundingBox {
public:
int smallestArea( vector <int> X, vector <int> Y ) {
}
};
#include <cstdio>
#include <ctime>
#include <iostream>
#include <string>
#include <vector>
namespace moj_harness {
using std::string;
using std::vector;
int run_test_case(int);
void run_test(int casenum = -1, bool quiet = false) {
if (casenum != -1) {
if (run_test_case(casenum) == -1 && !quiet) {
std::cerr << "Illegal input! Test case " << casenum << " does not exist." << std::endl;
}
return;
}
int correct = 0, total = 0;
for (int i=0;; ++i) {
int x = run_test_case(i);
if (x == -1) {
if (i >= 100) break;
continue;
}
correct += x;
++total;
}
if (total == 0) {
std::cerr << "No test cases run." << std::endl;
} else if (correct < total) {
std::cerr << "Some cases FAILED (passed " << correct << " of " << total << ")." << std::endl;
} else {
std::cerr << "All " << total << " tests passed!" << std::endl;
}
}
int verify_case(int casenum, const int &expected, const int &received, std::clock_t elapsed) {
std::cerr << "Example " << casenum << "... ";
string verdict;
vector<string> info;
char buf[100];
if (elapsed > CLOCKS_PER_SEC / 200) {
std::sprintf(buf, "time %.2fs", elapsed * (1.0/CLOCKS_PER_SEC));
info.push_back(buf);
}
if (expected == received) {
verdict = "PASSED";
} else {
verdict = "FAILED";
}
std::cerr << verdict;
if (!info.empty()) {
std::cerr << " (";
for (size_t i=0; i<info.size(); ++i) {
if (i > 0) std::cerr << ", ";
std::cerr << info[i];
}
std::cerr << ")";
}
std::cerr << std::endl;
if (verdict == "FAILED") {
std::cerr << " Expected: " << expected << std::endl;
std::cerr << " Received: " << received << std::endl;
}
return verdict == "PASSED";
}
int run_test_case(int casenum__) {
switch (casenum__) {
case 0: {
int X[] = {0,1};
int Y[] = {1,0};
int expected__ = 1;
std::clock_t start__ = std::clock();
int received__ = BoundingBox().smallestArea(vector <int>(X, X + (sizeof X / sizeof X[0])), vector <int>(Y, Y + (sizeof Y / sizeof Y[0])));
return verify_case(casenum__, expected__, received__, clock()-start__);
}
case 1: {
int X[] = {0,-2,-1};
int Y[] = {-1,-1,-2};
int expected__ = 2;
std::clock_t start__ = std::clock();
int received__ = BoundingBox().smallestArea(vector <int>(X, X + (sizeof X / sizeof X[0])), vector <int>(Y, Y + (sizeof Y / sizeof Y[0])));
return verify_case(casenum__, expected__, received__, clock()-start__);
}
case 2: {
int X[] = {0,0,1,0,-1,2};
int Y[] = {0,1,2,-2,0,-1};
int expected__ = 12;
std::clock_t start__ = std::clock();
int received__ = BoundingBox().smallestArea(vector <int>(X, X + (sizeof X / sizeof X[0])), vector <int>(Y, Y + (sizeof Y / sizeof Y[0])));
return verify_case(casenum__, expected__, received__, clock()-start__);
}
case 3: {
int X[] = {9,-88,-40,98,-55,41,-38};
int Y[] = {-65,56,-67,7,-58,33,68};
int expected__ = 25110;
std::clock_t start__ = std::clock();
int received__ = BoundingBox().smallestArea(vector <int>(X, X + (sizeof X / sizeof X[0])), vector <int>(Y, Y + (sizeof Y / sizeof Y[0])));
return verify_case(casenum__, expected__, received__, clock()-start__);
}
default:
return -1;
}
}
}
int main(int argc, char *argv[]) {
if (argc == 1) {
for (int test = 0; test < 10; ++test) {
string command = string(argv[0]) + " ";
command.push_back('0' + test);
if (system(command.c_str()))
cerr << "TEST FAILED!" << endl;
}
} else {
moj_harness::run_test(atoi(argv[1]));
}
return 0;
}