Cod sursă (job #513422)

Utilizator avatar Jarvis Adrian Petrusca Jarvis IP ascuns
Problemă Romb2 (clasele 9-10) Compilator cpp | 1,00 kb
Rundă Arhiva de probleme Status evaluat
Dată 16 dec. 2019 21:07:47 Scor 0
#include <bits/stdc++.h>
 
    using namespace std;
    double x, y, dx, dy;
    int ans, t, k;
 
void count (int k)
{
    if (!k)
        return;
    ans *= 4;
 
    if (x * dy < y * dx)
    {
        if (x * dy > -y * dx)
        {
            //Cadran 1
            dx /= 2, dy /= 2;
            y -= dy;
            ans -= 3;
        }
        else
        {
            //Cadran 2
            dx /= 2, dy /= 2;
            x += dx;
            ans -= 2;
        }
    }
    else
    {
        if (x * dy > -y * dx)
        {
            //Cadran 4
            dx /= 2, dy /= 2;
            x -= dx;
        }
        else
        {
            //Cadran 3
            dx /= 2, dy /= 2;
            y += dy;
            ans -= 1;
        }
    }
 
    count (k - 1);
}
 
int main ()
{
   ifstream cin("romb2.in");
   ofstream cout("romb2.out");
 
    cin >> t;
    while (t--)
    {
        ans = 1;
 
        cin >> dx >> dy >> k >> x >> y;
        count (k);
 
        cout << ans - 1 << '\n';
    }
    return 0;
}