| Task: | Ruudukko |
| Sender: | pupukani |
| Submission time: | 2025-11-30 04:12:06 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 58 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 16 |
| #2 | ACCEPTED | 42 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.15 s | 2, 3 | details |
| #3 | ACCEPTED | 0.26 s | 2, 3 | details |
| #4 | ACCEPTED | 0.58 s | 3 | details |
| #5 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
#include <cstdint>
#include <string>
#include <iostream>
#include <vector>
int main()
{
int n, m;
std::cin >> n >> m;
std::cin.ignore();
int bits = n * n;
std::vector<uint64_t> ruudukko(bits / 64 + 1);
int y1, x1, y2, x2;
for (int i = 0; i < m; ++i)
{
std::cin >> y1 >> x1 >> y2 >> x2;
y1--; x1--; y2--; // x2--;
for (int y = y1; y <= y2; ++y)
{
int index1 = y * n + x1;
int index2 = y * n + x2;
auto& element1 = ruudukko[index1 / 64];
auto& element2 = ruudukko[index2 / 64];
if (&element1 == &element2)
element1 ^= (1ULL << (63 - index1 % 64)) | (1ULL << (63 - index2 % 64));
else
{
element1 ^= (1ULL << (63 - index1 % 64));
element2 ^= (1ULL << (63 - index2 % 64));
}
}
}
std::string printtaus;
char merkki = '.';
for (int i = 0; i < n * n; ++i)
{
const auto& element = ruudukko[i / 64];
int bit = element >> (63 - i % 64) & 1;
if (bit == 1)
merkki = merkki == '.' ? '#' : '.';
printtaus += merkki;
}
for (int i = 1; i < n; ++i)
printtaus.insert(i * n + i - 1, 1, '\n');
std::cout << printtaus << std::endl;
}
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 10 100 6 7 8 9 2 6 7 10 7 5 9 6 6 1 6 2 ... |
| correct output |
|---|
| ..##..##.. ##....##.# ..####..## ##.##..... ####....## ... |
| user output |
|---|
| ..##..##.. ##....##.# ..####..## ##.##..... ####....## ... |
Test 2
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 500 100000 133 109 167 178 204 337 481 477 242 476 445 485 452 198 460 321 ... |
| correct output |
|---|
| .##....####.####..##....#.##.#... |
| user output |
|---|
| .##....####.####..##....#.##.#... |
Test 3
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 500 100000 33 7 485 482 50 38 456 459 34 20 479 493 13 6 479 485 ... |
| correct output |
|---|
| .....#.####.#.#...####.##....#... |
| user output |
|---|
| .....#.####.#.#...####.##....#... |
Test 4
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 2000 100000 126 95 1489 1619 1473 29 1697 78 1290 1031 1588 1047 1209 1794 1546 1818 ... |
| correct output |
|---|
| ..........................####... |
| user output |
|---|
| ..........................####... |
Test 5
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 2000 100000 55 51 1842 1905 47 60 1997 1890 117 45 1920 1840 48 175 1987 1852 ... |
| correct output |
|---|
| #.#...#...###.#...#####..####.... |
| user output |
|---|
| (empty) |
