Zadanie http://pl.spoj.com/problems/AL_09_03/
Dostaję błędną odpowiedź. Zapewne przez przekroczeniu zakresu przy iloczynie w warunku. Jak można to inaczej sprawdzić?
#include <cstdio>
#include <vector>
using namespace std;
struct Point {
Point(){}
Point(long long int x, long long int y): x(x), y(y) {}
long long int x,y;
};
int main() {
int t, n;
long long int x, y;
scanf("%d", &t);
for(int i = 0; i < t; ++i) {
scanf("%d", &n);
vector<Point> points;
bool b = true;
for(int i = 0; i < n; ++i) {
scanf("%lld%lld", &x, &y);
for(int j = 0; j < i; ++j) {
if(x * points[j].y - points[j].x * y != 0) b = false;
}
points.push_back(Point(x, y));
}
printf("%s\n", b? "TAK": "NIE");
}
return 0;
}