Cod sursa(job #2468557)

Utilizator TheGodFather2131Alexandru Miclea TheGodFather2131 Data 5 octombrie 2019 17:29:10
Problema Barbar Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
//ALEXANDRU MICLEA

#include <vector>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>
#include <numeric>
#include <utility>

using namespace std;

#include <fstream>
ifstream cin("perfect2.in"); 
ofstream cout("perfect2.out");
pair <int, int> A[200100];
int c, n;

int euclid(int a, int b) {
	if (b == 0) {
		return a;
	}
	else {
		return euclid(b, a % b);
	}

}

void segperf() {
	int ans = 0;
	for (int i = 2; i <= n; i++) {
		A[i].first -= A[1].first;
		A[i].first = abs(A[i].first);
		A[i].second -= A[1].second;
		A[i].second = abs(A[i].second);
		if (euclid(A[i].first, A[i].second) == 1) {
			ans++;
		}
	}
	cout << ans;
}

void ariemin() {
	int minx = 5000, miny = 5000,maxx = 0, maxy = 0;
	for (int i = 1; i <= n; i++) {
		minx = min(minx, A[i].first);
		miny = min(miny, A[i].second);
		maxx = max(maxx, A[i].first);
		maxy = max(maxy, A[i].second);
	}
	cout << minx << " " << miny << " ";
	cout << maxx << " " << maxy;
}

int main() {

	cin >> c >> n;
	for (int i = 1; i <= n; i++) {
		cin >> A[i].first >> A[i].second;
	}
	if (c == 1) {
		ariemin();
	}
	else {
		segperf();
	}
	return 0;
}