Pagini recente » Cod sursa (job #681382) | Cod sursa (job #2790512) | Cod sursa (job #1768173) | Cod sursa (job #2430595) | Cod sursa (job #800055)
Cod sursa(job #800055)
#include <cassert>
#include <cstdio>
using namespace std;
const int N = 10005;
int n;
double xm[N], ym[N], x[N], y[N];
void read() {
assert(freopen("poligon2.in", "r", stdin) != NULL);
assert(freopen("poligon2.out", "w", stdout) != NULL);
assert(scanf("%d", &n) == 1);
for (int i = 1; i <= n; ++i)
assert(scanf("%lf %lf", &xm[i], &ym[i]) == 2);
}
void solve() {
double minus = 1.0, sumx = 0.0, sumy = 0.0;
for (int i = n - 1; i > 0; --i) {
sumx += 2.0 * xm[i] * minus;
sumy += 2.0 * ym[i] * minus;
minus *= -1.0;
}
x[1] = (2.0 * xm[n] + sumx) / 2.0;
y[1] = (2.0 * ym[n] + sumy) / 2.0;
for (int i = 2; i <= n; ++i) {
x[i] = (2.0 * xm[i - 1]) - x[i - 1];
y[i] = (2.0 * ym[i - 1]) - y[i - 1];
}
}
void print() {
for (int i = 1; i <= n; ++i)
printf("%lf %lf\n", x[i], y[i]);
}
int main() {
read();
if (n % 2 == 0) {
//printf("fara solutie\n");
return 0;
}
solve();
print();
}