Pagini recente » Cod sursa (job #401817) | Cod sursa (job #2884175) | Cod sursa (job #2915866) | Cod sursa (job #616767) | Cod sursa (job #2387264)
#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;
}