Cod sursă (job #361879)

Utilizator avatar andreisontea Andrei Sontea andreisontea IP ascuns
Problemă Romb2 (clasele 9-10) Compilator cpp | 1,05 kb
Rundă Arhiva de probleme Status evaluat
Dată 8 mar. 2018 22:40:14 Scor 100
#include <iostream>
#include <cstdio>

using namespace std;

int determpoz(bool jumx, bool jumy){
    if(jumx && jumy) return 3;
    if(jumx && !jumy) return 2;
    if(!jumx && !jumy) return 1;
    if(!jumx && jumy) return 0;
}

int main()
{
    freopen("romb2.in", "r", stdin);
    freopen("romb2.out", "w", stdout);
    int t;
    scanf("%d", &t);
    for(int test = 1; test <= t; ++test){
        int k;
        float dx, dy, cx, cy, panta;
        scanf("%f%f%d%f%f", &dx, &dy, &k, &cx, &cy);
        long long regiune = 1LL;
        panta = dy / dx;
        while(k > 0){
            bool jumx = 0, jumy = 0;
            if(cx * panta < cy) jumx = 1;
            if(-(cx * panta) < cy) jumy = 1;
            dx /= 2;
            dy /= 2;
            int eroare = determpoz(jumx, jumy);
            if(eroare == 3) cy -= dy;
            if(eroare == 2) cx += dx;
            if(eroare == 1) cy += dy;
            if(eroare == 0) cx -= dx;
            regiune = 4 * regiune - eroare;
            k--;
        }
        printf("%lld\n", regiune);
    }
    return 0;
}