Cod sursa(job #2387264)

Utilizator ezioconnorVlad - Gabriel Iftimescu ezioconnor Data 24 martie 2019 14:29:33
Problema Eprubeta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;

ifstream in("eprubeta.in");
ofstream out("eprubeta.out");

int v[2001][2001];
long long s;
long long mod = (1LL << 32);

inline void inversare(int x, int y)
{
    int dif = (y - x + 1) / 2;
    for (int i = x; i <= dif; ++i)
    {
        for (int j = x; j <= y; ++j)
            swap(v[i][j], v[y - i + 1][j]);
    }
}

inline void suma(int x, int y)
{
    for (int i = x; i <= y; ++i)
    {
        for (int j = x; j <= y; ++j)
            s += v[i][j];
    }
}

int main()
{
    int n, m, z, a, b;
    in >> n >> m >> z >> a >> b;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
            v[i][j] = ((i + a) * (j + b) / 4) % z;
    }
    int p, x, y;
    for (int q = 1; q <= m; ++q)
    {
        in >> p >> x >> y;
        if (p == 1)
            inversare(x, y);
        else
        {
            s = 0;
            suma(x, y);
            out << s << '\n';
        }
    }
    return 0;
}