Initial commit

This commit is contained in:
oleg20111511
2022-06-01 20:14:50 +03:00
commit 8b9cce4739
1094 changed files with 68851 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <algorithm>
#include <unordered_map>
using namespace std;
ifstream input_stream;
ofstream output_stream;
int getMinRest(int L, int lengths[], int K) {
for (int i = 0; i < K; i++) {
if (L % lengths[i] == 0) {
return 0;
}
}
sort(lengths, lengths + K);
for (int i = 1; i < K; i++) {
if (lengths[i] - lengths[i - 1] == 1 && lengths[i] * lengths[i - 1] < L) {
return 0;
}
}
if (K < 2) {
return L % lengths[0];
}
set<int> processed_lengths;
set<int> new_lengths;
unordered_map<int, bool> detected_lengths;
for (int i = 0; i < K; i++) {
processed_lengths.insert(lengths[i]);
new_lengths.insert(lengths[i]);
detected_lengths[lengths[i]] = true;
}
while (true) {
// cout << "Processed: " << processed_lengths.size() << "; New: " << new_lengths.size() << endl;
set<int> found_lengths;
for (auto i: processed_lengths) {
for (auto j: new_lengths) {
int new_len = i + j;
if (new_len <= L && detected_lengths[new_len] == false) {
found_lengths.insert(new_len);
detected_lengths[new_len] = true;
}
}
}
processed_lengths.insert(new_lengths.begin(), new_lengths.end());
if (found_lengths.size() == 0) {
break;
}
new_lengths = found_lengths;
}
auto m = processed_lengths.end();
m--;
return L - *m;
}
int main() {
input_stream.open("input.txt");
int L, K;
input_stream >> L;
input_stream >> K;
int lengths[K];
for (int i = 0; i < K; i++) {
input_stream >> lengths[i];
}
cout << getMinRest(L, lengths, K) << endl;
input_stream.close();
return 0;
}
Binary file not shown.
+111
View File
@@ -0,0 +1,111 @@
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream input_stream;
ofstream output_stream;
struct Node {
public:
uint32_t number;
Node *left, *right;
Node(uint32_t n):number(n) {
}
Node(): number(0) {
}
};
bool locateLeftmostNode (Node *node, uint32_t level, uint32_t targetLevel) {
if (level == targetLevel) {
cout << node -> number << " ";
return 1;
} else {
// Search left. If unsuccessfull, search through right
if (node -> left != nullptr) {
if (locateLeftmostNode(node -> left, level + 1, targetLevel)) {
return 1;
}
}
// Search right. If unsuccessful, this should return 0
if (node -> right != nullptr) {
return locateLeftmostNode(node -> right, level + 1, targetLevel);
}
// Previous searches didn't return anything, meaning node has no children. Return 0
return 0;
}
}
bool locateRightmostNode (Node *node, uint32_t level, uint32_t targetLevel) {
if (level == targetLevel) {
cout << node -> number << endl;
return 1;
} else {
// Search right. If unsuccessfull, search through left
if (node -> right != nullptr) {
if (locateRightmostNode(node -> right, level + 1, targetLevel)) {
return 1;
}
}
// Search left. If unsuccessful, this should return 0
if (node -> left != nullptr) {
return locateRightmostNode(node -> left, level + 1, targetLevel);
}
// Previous searches didn't return anything, meaning node has no children. Return 0
return 0;
}
}
int main() {
input_stream.open("input.txt");
uint32_t N;
uint16_t K;
input_stream >> N;
input_stream >> K;
unordered_map<uint32_t, Node*> orphanNodes;
Node *nodes[N];
for (uint32_t i = 0; i < N; i++) {
nodes[i] = new Node(i + 1);
orphanNodes[i + 1] = nodes[i];
}
for (uint32_t i = 0; i < (N - 1); i++) {
uint32_t parentId, childId;
char direction;
input_stream >> parentId;
input_stream >> childId;
input_stream >> direction;
// Remove orphan mark from child
orphanNodes.erase(childId);
// Assign child to parent
if(direction == 'S') {
nodes[parentId - 1] -> left = nodes[childId - 1];
} else {
nodes[parentId - 1] -> right = nodes[childId - 1];
}
}
Node *rootNode = orphanNodes.begin() -> second;
locateLeftmostNode(rootNode, 0, K);
locateRightmostNode(rootNode, 0, K);
input_stream.close();
return 0;
}
+60
View File
@@ -0,0 +1,60 @@
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream input_stream;
struct Point
{
double x;
double y;
Point(double i, double j): x(i), y(j) {
}
};
double getDistance(Point *p1, Point *p2) {
double x_distance = abs(p1 -> x - p2 -> x);
double y_distance = abs(p1 -> y - p2 -> y);
return pow(x_distance, 2) + pow(y_distance, 2);
}
uint16_t findSides(Point *points[3]) {
double d1 = getDistance(points[0], points[1]);
double d2 = getDistance(points[0], points[2]);
double d3 = getDistance(points[1], points[2]);
if (d1 == d2 && d1 == d3) {
return 3;
}
return 1;
}
int main() {
input_stream.open("input.txt");
Point *points[3];
for (uint8_t i = 0; i < 3; i++) {
double tmp_x, tmp_y;
input_stream >> tmp_x;
input_stream >> tmp_y;
points[i] = new Point(tmp_x, tmp_y);
}
cout << findSides(points) << endl;
input_stream.close();
return 0;
}
+58
View File
@@ -0,0 +1,58 @@
#include <iostream>
#include <fstream>
#include <deque>
#include <numeric>
using namespace std;
ifstream input_stream;
ofstream output_stream;
uint64_t dequeSum(deque<uint64_t> &d) {
return accumulate(d.begin(), d.end(), 0);
}
int main() {
input_stream.open("input.txt");
output_stream.open("output.txt");
uint16_t P, T, N;
input_stream >> P;
input_stream >> T;
input_stream >> N;
deque<uint64_t> bacteria;
bacteria.push_front(P);
uint16_t i;
uint64_t mature = 0;
// Populate list until death of first generation
for (i=1; i < T && i <= N; i++) {
// Reproduction
bacteria.push_front(mature);
// Maturity
mature += bacteria[1];
}
// Run loop considering death until experiment is complete
for(i; i <= N; i++) {
// Reproduction
bacteria.push_front(mature);
// Death
mature -= bacteria.back();
bacteria.pop_back();
// Maturity
mature += bacteria[1];
}
output_stream << dequeSum(bacteria) << endl;
input_stream.close();
output_stream.close();
return 0;
}
Binary file not shown.
+152
View File
@@ -0,0 +1,152 @@
#include <iostream>
#include <fstream>
#include <set>
#include <algorithm>
#include <vector>
using namespace std;
ifstream input_stream;
ofstream output_stream;
int matchCode(string code1, string code2) {
int match = 0;
const int lim = min(code1.length(), code2.length());
for (int i = 0; i < lim; i++) {
if (code1[i] == code2[i]) {
match++;
}
}
return match;
}
void task1() {
uint16_t n;
input_stream >> n;
uint16_t m;
input_stream >> m;
uint16_t G;
input_stream >> G;
string monea_code;
input_stream >> monea_code;
int16_t best_match = -1;
vector<string> matches;
matches.reserve(m * n);
for (uint16_t y = 0; y < n; y++) {
for (uint16_t x = 0; x < m; x++) {
string cat_code;
input_stream >> cat_code;
uint8_t match = matchCode(monea_code, cat_code);
if (match > best_match && match > G) {
best_match = match;
matches.clear();
matches.push_back(to_string(y + 1) + " " + to_string(x + 1) + " " + cat_code);
} else if (match == best_match) {
matches.push_back(to_string(y + 1) + " " + to_string(x + 1) + " " + cat_code);
}
}
}
if (best_match > 0) {
output_stream << best_match << endl;
for (auto i = matches.begin(); i != matches.end(); i++) {
output_stream << *i << endl;
}
} else {
output_stream << "MONEA NU ARE RUDE" << endl;
}
}
void task2() {
uint16_t n;
input_stream >> n;
uint16_t m;
input_stream >> m;
uint16_t G;
input_stream >> G;
string monea_code;
input_stream >> monea_code;
bool town[n][m] = {};
for (uint16_t y = 0; y < n; y++) {
for (uint16_t x = 0; x < m; x++) {
string cat_code;
input_stream >> cat_code;
if (matchCode(monea_code, cat_code) > G) {
town[y][x] = true;
} else {
town[y][x] = false;
}
}
}
uint16_t sum[n][m] = {};
uint16_t max_of_s, max_i, max_j = 0;
for (uint16_t i = 0; i < n; i++) {
sum[i][m - 1] = town[i][m - 1];
}
for (uint16_t j = 0; j < m; j++) {
sum[n - 1][j] = town[n - 1][j];
}
for (int16_t i = n-2; i >= 0; i--) {
for (int16_t j = m-2; j >= 0; j--) {
if (town[i][j]) {
sum[i][j] = min(sum[i][j+1], min(sum[i+1][j], sum[i+1][j+1])) + 1;
if (sum[i][j] >= max_of_s) {
max_of_s = sum[i][j];
max_i = i;
max_j = j;
}
} else {
sum[i][j] = 0;
}
}
}
if (max_of_s > 0) {
output_stream << (max_i + 1) << " " << (max_j + 1) << " " << max_of_s << endl;
} else {
output_stream << "MONEA NU ARE RUDE" << endl;
}
}
int main() {
input_stream.open("input.txt");
output_stream.open("output.txt");
char task;
input_stream >> task;
if (task == '1') {
task1();
} else {
task2();
}
input_stream.close();
output_stream.close();
return 0;
}
+61
View File
@@ -0,0 +1,61 @@
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream input_stream;
ofstream output_stream;
int findAnagramPos(string content, string title) {
const uint32_t CONTENT_LEN = content.length();
const uint32_t TITLE_LEN = title.length();
unordered_map<char, uint32_t> target, anagram;
for (uint32_t i = 0; i < TITLE_LEN; i++) {
target[title[i]]++;
anagram[content[i]]++;
}
if (target == anagram) {
return 0;
}
for (uint32_t i = TITLE_LEN; i < CONTENT_LEN; i++) {
/**
Old first character pos = i - TITLE_LEN
New first character pos = i - TITLE_LEN + 1
Old last character pos = i - 1
New last character pos = i
*/
char firstChar = content[i - TITLE_LEN];
anagram[firstChar]--;
if (anagram[firstChar] == 0) {
anagram.erase(firstChar);
}
anagram[content[i]]++;
if (target == anagram) {
return i - TITLE_LEN;
}
}
return -1;
}
int main() {
input_stream.open("input.txt");
string content, title;
input_stream >> content;
input_stream >> title;
cout << findAnagramPos(content, title) << endl;
input_stream.close();
return 0;
}
+111
View File
@@ -0,0 +1,111 @@
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream input_stream;
ofstream output_stream;
struct Node {
public:
uint32_t number;
Node *left, *right;
Node(uint32_t n):number(n) {
}
Node(): number(0) {
}
};
bool locateLeftmostNode (Node *node, uint32_t level, uint32_t targetLevel) {
if (level == targetLevel) {
cout << node -> number << " ";
return 1;
} else {
// Search left. If unsuccessfull, search through right
if (node -> left != nullptr) {
if (locateLeftmostNode(node -> left, level + 1, targetLevel)) {
return 1;
}
}
// Search right. If unsuccessful, this should return 0
if (node -> right != nullptr) {
return locateLeftmostNode(node -> right, level + 1, targetLevel);
}
// Previous searches didn't return anything, meaning node has no children. Return 0
return 0;
}
}
bool locateRightmostNode (Node *node, uint32_t level, uint32_t targetLevel) {
if (level == targetLevel) {
cout << node -> number << endl;
return 1;
} else {
// Search right. If unsuccessfull, search through left
if (node -> right != nullptr) {
if (locateRightmostNode(node -> right, level + 1, targetLevel)) {
return 1;
}
}
// Search left. If unsuccessful, this should return 0
if (node -> left != nullptr) {
return locateRightmostNode(node -> left, level + 1, targetLevel);
}
// Previous searches didn't return anything, meaning node has no children. Return 0
return 0;
}
}
int main() {
input_stream.open("input.txt");
uint32_t N;
uint16_t K;
input_stream >> N;
input_stream >> K;
unordered_map<uint32_t, Node*> orphanNodes;
Node *nodes[N];
for (uint32_t i = 0; i < N; i++) {
nodes[i] = new Node(i + 1);
orphanNodes[i + 1] = nodes[i];
}
for (uint32_t i = 0; i < (N - 1); i++) {
uint32_t parentId, childId;
char direction;
input_stream >> parentId;
input_stream >> childId;
input_stream >> direction;
// Remove orphan mark from child
orphanNodes.erase(childId);
// Assign child to parent
if(direction == 'S') {
nodes[parentId - 1] -> left = nodes[childId - 1];
} else {
nodes[parentId - 1] -> right = nodes[childId - 1];
}
}
Node *rootNode = orphanNodes.begin() -> second;
locateLeftmostNode(rootNode, 0, K);
locateRightmostNode(rootNode, 0, K);
input_stream.close();
return 0;
}
+66
View File
@@ -0,0 +1,66 @@
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <list>
using namespace std;
ifstream input_stream;
ofstream output_stream;
void fillList(list<uint16_t> &L) {
int counter = 1;
for (auto i = L.begin(); i != L.end(); i++) {
*i = counter;
counter++;
}
}
list<uint16_t> getPositions() {
uint16_t N, K, R;
input_stream >> N;
input_stream >> K;
input_stream >> R;
list<uint16_t> positions (N, 0);
fillList(positions);
for (uint16_t i; i < R; i++) {
uint16_t loser;
input_stream >> loser;
auto loser_it = positions.begin();
advance(loser_it, loser-1);
loser = *loser_it;
positions.erase(loser_it);
positions.push_back(loser);
}
return positions;
}
int main() {
input_stream.open("input.txt");
output_stream.open("output.txt");
list<uint16_t> positions = getPositions();
uint16_t P;
input_stream >> P;
auto dan_it = positions.begin();
advance(dan_it, P - 1);
cout << *dan_it << endl;
input_stream.close();
output_stream.close();
return 0;
}
+44
View File
@@ -0,0 +1,44 @@
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream input_stream;
ofstream output_stream;
int main() {
input_stream.open("input.txt");
output_stream.open("output.txt");
uint32_t N, K, R, P;
input_stream >> N;
input_stream >> K;
input_stream >> R;
uint32_t rounds[R] = {};
for (uint32_t i = 0; i < R; i++) {
input_stream >> rounds[i];
}
input_stream >> P;
for (int i = R - 1; i >=0; i--) {
if (P == N) {
P = rounds[i];
} else if (P >= rounds[i]) {
P++;
}
}
cout << P << endl;
input_stream.close();
output_stream.close();
return 0;
}
Binary file not shown.
+152
View File
@@ -0,0 +1,152 @@
#include <iostream>
#include <fstream>
#include <set>
#include <algorithm>
#include <vector>
using namespace std;
ifstream input_stream;
ofstream output_stream;
set<char> readCode() {
char str[20] = {};
input_stream >> str;
set<char> code = set<char>(begin(str), end(str));
return code;
}
uint8_t getIntersection(set<char> set1, set<char> set2) {
set<char> result;
set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), inserter(result, result.begin()));
return result.size() - 1;
}
void task1() {
uint16_t n;
input_stream >> n;
uint16_t m;
input_stream >> m;
uint16_t G;
input_stream >> G;
set<char> monea_code = readCode();
int16_t best_match = -1;
vector<string> matches;
matches.reserve(m * n);
for (uint16_t y = 0; y < n; y++) {
for (uint16_t x = 0; x < m; x++) {
char cat[20] = {};
input_stream >> cat;
set<char> cat_code = set<char>(begin(cat), end(cat));
uint8_t match = getIntersection(monea_code, cat_code);
if (match > best_match && match > G) {
best_match = match;
matches.clear();
matches.push_back(to_string(y + 1) + " " + to_string(x + 1) + " " + string(cat));
} else if (match == best_match) {
matches.push_back(to_string(y + 1) + " " + to_string(x + 1) + " " + string(cat));
}
}
}
if (best_match > 0) {
output_stream << best_match << endl;
for (auto i = matches.begin(); i != matches.end(); i++) {
output_stream << *i << endl;
}
} else {
output_stream << "MONEA NU ARE RUDE" << endl;
}
}
void task2() {
uint16_t n;
input_stream >> n;
uint16_t m;
input_stream >> m;
uint16_t G;
input_stream >> G;
set<char> monea_code = readCode();
bool town[n][m] = {};
for (uint16_t y = 0; y < n; y++) {
for (uint16_t x = 0; x < m; x++) {
set<char> cat_code = readCode();
if (getIntersection(monea_code, cat_code) > G) {
town[y][x] = true;
} else {
town[y][x] = false;
}
}
}
uint16_t sum[n][m] = {};
uint16_t max_of_s, max_i, max_j = 0;
for (uint16_t i = 0; i < n; i++) {
sum[i][m - 1] = town[i][m - 1];
}
for (uint16_t j = 0; j < m; j++) {
sum[n - 1][j] = town[n - 1][j];
}
for (int16_t i = n-2; i >= 0; i--) {
for (int16_t j = m-2; j >= 0; j--) {
if (town[i][j]) {
sum[i][j] = min(sum[i][j+1], min(sum[i+1][j], sum[i+1][j+1])) + 1;
if (sum[i][j] >= max_of_s) {
max_of_s = sum[i][j];
max_i = i;
max_j = j;
}
} else {
sum[i][j] = 0;
}
}
}
if (max_of_s > 0) {
output_stream << (max_i + 1) << " " << (max_j + 1) << " " << max_of_s << endl;
} else {
output_stream << "MONEA NU ARE RUDE" << endl;
}
}
int main() {
input_stream.open("input.txt");
output_stream.open("output.txt");
char task;
input_stream >> task;
if (task == '1') {
task1();
} else {
task2();
}
input_stream.close();
output_stream.close();
return 0;
}
Binary file not shown.
+143
View File
@@ -0,0 +1,143 @@
#include <iostream>
#include <fstream>
using namespace std;
ifstream input_stream;
ofstream output_stream;
bool checkAscending(string numStr) {
char highestDigit = numStr[0];
for (uint8_t i = 1; i < numStr.length(); i++) {
if (numStr[i] < highestDigit) {
return false;
}
highestDigit = numStr[i];
}
return true;
}
uint64_t n_choose_m(uint8_t n, uint8_t m) {
if (m > n) {
return 0;
}
if (m * 2 > n) {
m = n - m;
}
if (m == 0) {
return 1;
}
uint64_t res = n;
for (int i = 2; i <= m; i++) {
res *= n - i + 1;
res /= i;
}
return res;
}
uint64_t pos_combinations(uint8_t pos) {
/**
pos starts at 0 from right end of number
10^pos <> 10^pos-1
*/
if (pos == 0) {
return 0;
} else {
return n_choose_m(8 + pos, pos);
}
}
uint64_t following_combinations(uint8_t first_num, uint8_t pos) {
/**
10^pos+1 <> first_num * 10^pos
available = 10 - (first_num - 1) + allowed_repeats (pos)
*/
return n_choose_m(10 - first_num + pos, pos + 1);
}
uint64_t preceeding_combinations(uint8_t first_num, uint8_t pos) {
/**
first_num * 10^pos <> 10^pos
*/
return pos_combinations(pos + 1) - following_combinations(first_num, pos);
}
uint64_t find_ascending(string start, string end) {
uint64_t result = 0;
const uint8_t end_len = end.length();
if (end_len == 1) {
result += stoi(end) - stoi(start) + 1;
} else if (start == "1") {
char highest_digit = '1';
bool sequence_integrity = true;
// Run this loop until a digit lower than the others is encountered
uint8_t i;
for (i = 0; i < end_len - 1; i++) {
uint8_t pos = end_len - i - 1;
result += pos_combinations(pos);
if (end[i] > highest_digit) {
result += preceeding_combinations(end[i] - '0', pos) - preceeding_combinations(highest_digit - '0', pos);
highest_digit = end[i];
} else if (end[i] < highest_digit) {
sequence_integrity = false;
break;
}
}
i++;
for (i; i < end_len - 1; i++) {
uint8_t pos = end_len - i - 1;
result += pos_combinations(pos);
}
if (sequence_integrity && end[end_len - 1] >= highest_digit) {
result += end[end_len - 1] - highest_digit + 1;
}
} else {
result += find_ascending("1", end) - find_ascending("1", start);
if (checkAscending(start)) {
result += 1;
}
}
return result;
}
int main() {
input_stream.open("input.txt");
output_stream.open("output.txt");
string A;
string B;
input_stream >> A;
input_stream >> B;
cout << find_ascending(A, B) << endl;
input_stream.close();
output_stream.close();
return 0;
}
+58
View File
@@ -0,0 +1,58 @@
#include <iostream>
#include <fstream>
#include <deque>
#include <numeric>
using namespace std;
ifstream input_stream;
ofstream output_stream;
uint64_t dequeSum(deque<uint64_t> &d) {
return accumulate(d.begin(), d.end(), 0);
}
int main() {
input_stream.open("input.txt");
output_stream.open("output.txt");
uint16_t P, T, N;
input_stream >> P;
input_stream >> T;
input_stream >> N;
deque<uint64_t> bacteria;
bacteria.push_front(P);
uint16_t i;
uint64_t mature = 0;
// Populate list until death of first generation
for (i=1; i < T && i <= N; i++) {
// Reproduction
bacteria.push_front(mature);
// Maturity
mature += bacteria[1];
}
// Run loop considering death until experiment is complete
for(i; i <= N; i++) {
// Reproduction
bacteria.push_front(mature);
// Death
mature -= bacteria.back();
bacteria.pop_back();
// Maturity
mature += bacteria[1];
}
output_stream << dequeSum(bacteria) << endl;
input_stream.close();
output_stream.close();
return 0;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

+108
View File
@@ -0,0 +1,108 @@
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream input_stream;
ofstream output_stream;
class Order {
public:
int hour;
int value;
int pos;
Order (int O, int V, int P) {
hour = O;
value = V;
pos = P;
}
Order () {
hour = -1;
value = -1;
pos = -1;
}
};
bool compValue(Order &a, Order &b) {
/**
Sort orders by value
*/
if (a.value < b.value) {
return true;
} else {
return false;
}
}
int main() {
input_stream.open("input.txt");
output_stream.open("output.txt");
int N;
input_stream >> N;
// plain orders array is used as a tmp-holder to read data
Order orders[N];
// Data from orders per hour is gradually appended to order queue
vector<Order> orders_by_hour[24];
for (int i=0; i < 24; i++) {
orders_by_hour[i].reserve(16);
}
int gain = 0;
int loss = 0;
for (int i=0; i < N; i++) {
// Read data for each order, calculate max possible gain
input_stream >> orders[i].hour;
input_stream >> orders[i].value;
gain += orders[i].value;
orders[i].pos = i + 1;
orders_by_hour[orders[i].hour - 1].push_back(orders[i]);
}
// Queue is appended for each hour, then it is sorted by value
vector<Order> order_queue;
order_queue.reserve(N);
// Resulting sequence of orders in reverse.
vector<Order> order_sequence;
order_sequence.reserve(N);
for (int i = 23; i >= 0; i--) {
// Add orders from this hour to queue
order_queue.insert(order_queue.end(), orders_by_hour[i].begin(), orders_by_hour[i].end());
// If queue is not empty, add the most expensive order from queue to sequence
if(order_queue.size() > 0) {
sort(order_queue.begin(), order_queue.end(), compValue);
order_sequence.push_back(order_queue.back());
order_queue.pop_back();
}
}
// Adjust gain/loss based on the orders left in queue
for (auto i: order_queue) {
loss += i.value;
gain -= i.value;
}
cout << gain << " " << loss << endl;
for (auto i = order_sequence.rbegin(); i != order_sequence.rend(); i++) {
cout << (*i).pos << endl;
}
input_stream.close();
output_stream.close();
return 0;
}
+3
View File
@@ -0,0 +1,3 @@
1
1 2
+1
View File
@@ -0,0 +1 @@
1
+11
View File
@@ -0,0 +1,11 @@
10
0 1
2 3
4 5
6 6
0 2
0 3
0 4
0 5
0 6
1 1
+1
View File
@@ -0,0 +1 @@
10
+18
View File
@@ -0,0 +1,18 @@
15
1 2
2 2
2 3
3 3
3 4
4 4
4 5
5 5
5 6
6 6
1 1
0 0
0 6
6 4
4 2
+1
View File
@@ -0,0 +1 @@
13
+16
View File
@@ -0,0 +1,16 @@
15
0 0
1 2
6 6
2 3
3 3
3 4
4 5
5 6
1 1
0 6
6 4
4 2
2 2
5 5
4 4
+1
View File
@@ -0,0 +1 @@
13
+19
View File
@@ -0,0 +1,19 @@
18
0 0
1 2
6 6
2 3
3 3
3 4
4 5
5 6
1 1
0 6
6 4
4 2
2 2
5 5
4 4
5 2
6 2
3 6
+1
View File
@@ -0,0 +1 @@
16
+19
View File
@@ -0,0 +1,19 @@
18
0 0
1 2
6 6
2 3
3 4
4 5
1 1
0 6
6 4
4 2
2 2
5 5
4 4
5 2
6 2
3 6
3 5
1 6
+1
View File
@@ -0,0 +1 @@
17
+20
View File
@@ -0,0 +1,20 @@
19
0 0
0 1
0 5
0 6
1 1
1 2
1 3
1 4
1 5
1 6
2 2
2 3
2 4
2 5
2 6
3 3
3 4
3 5
3 6
+1
View File
@@ -0,0 +1 @@
18
+20
View File
@@ -0,0 +1,20 @@
19
0 0
0 1
1 2
1 3
1 4
1 5
1 6
2 2
2 3
2 4
2 5
2 6
3 3
3 4
3 5
3 6
4 4
5 5
6 6
+1
View File
@@ -0,0 +1 @@
17
+19
View File
@@ -0,0 +1,19 @@
17
0 0
1 1
5 6
4 6
2 2
2 3
2 4
2 5
2 6
3 3
3 4
3 5
3 6
4 4
4 5
5 5
6 6
+1
View File
@@ -0,0 +1 @@
15
+21
View File
@@ -0,0 +1,21 @@
19
2 5
3 3
2 6
3 4
3 5
4 4
3 6
4 5
6 6
5 5
0 0
1 1
1 3
5 6
1 2
4 6
2 2
2 3
2 4
+1
View File
@@ -0,0 +1 @@
18
+22
View File
@@ -0,0 +1,22 @@
20
0 0
0 1
0 3
0 4
1 1
1 2
1 3
1 4
1 6
2 2
2 3
2 5
3 3
3 4
3 6
4 4
4 5
5 5
5 6
6 6
+1
View File
@@ -0,0 +1 @@
18
+8
View File
@@ -0,0 +1,8 @@
7
0 0
1 1
2 2
3 3
4 4
5 5
6 6
+1
View File
@@ -0,0 +1 @@
1
+23
View File
@@ -0,0 +1,23 @@
22
0 0
0 1
0 3
0 4
1 1
1 2
1 3
1 4
1 6
2 2
2 3
2 5
3 3
3 4
3 6
4 4
4 5
5 5
5 6
6 6
0 5
0 6
+1
View File
@@ -0,0 +1 @@
21
+10
View File
@@ -0,0 +1,10 @@
8
0 0
1 1
2 2
3 3
4 4
5 5
6 6
2 3
+1
View File
@@ -0,0 +1 @@
3
+12
View File
@@ -0,0 +1,12 @@
9
0 0
1 1
2 2
3 3
4 4
5 5
6 6
2 3
3 4
+1
View File
@@ -0,0 +1 @@
5
+5
View File
@@ -0,0 +1,5 @@
4
3 6
3 5
3 0
6 6
+1
View File
@@ -0,0 +1 @@
3
+11
View File
@@ -0,0 +1,11 @@
10
0 0
4 5
3 5
6 6
3 0
2 2
3 3
4 4
3 6
5 5
+1
View File
@@ -0,0 +1 @@
7
+11
View File
@@ -0,0 +1,11 @@
10
1 0
2 3
4 5
1 2
5 5
3 3
2 2
3 4
1 1
4 4
+1
View File
@@ -0,0 +1 @@
10
+11
View File
@@ -0,0 +1,11 @@
10
3 4
0 0
2 3
4 4
6 6
0 1
5 6
1 1
4 5
1 2
+1
View File
@@ -0,0 +1 @@
10
+15
View File
@@ -0,0 +1,15 @@
10
0 4
0 6
0 1
1 2
2 3
4 6
5 6
1 6
2 6
5 3
+1
View File
@@ -0,0 +1 @@
9
+20
View File
@@ -0,0 +1,20 @@
1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5
9 5
10 5
11 5
12 5
13 5
14 5
15 5
16 5
17 5
18 5
19 5
20 5
+7
View File
@@ -0,0 +1,7 @@
4
Postasul Valentina 38
Munteanu Ion 25
Prisacaru Viorica 59
Paduraru Vasile 100
+3
View File
@@ -0,0 +1,3 @@
55.50
Paduraru Vasile 100
Munteanu Ion 25
+12
View File
@@ -0,0 +1,12 @@
10
Postasul Valentina 3983
Munteanu Ion 3999
Prisacaru Viorica 3998
Paduraru Vasile 3997
Mocanu Petru 4000
Levinta Ecaterina 3995
Moraru Victoria 3994
Munteanu Elena 3996
Panzaru Maria 3982
Rotaru Constantin 3981
+3
View File
@@ -0,0 +1,3 @@
3992.50
Mocanu Petru 4000
Rotaru Constantin 3981
+9
View File
@@ -0,0 +1,9 @@
5
Postasul Valentina 38
Munteanu Ion 25
Prisacaru Viorica 59
Paduraru Vasile 100
Levinta Ecaterina 134
+3
View File
@@ -0,0 +1,3 @@
71.20
Levinta Ecaterina 134
Munteanu Ion 25
+11
View File
@@ -0,0 +1,11 @@
6
Postasul Valentina 1
Munteanu Ion 2
Prisacaru Viorica 3
Paduraru Vasile 8
Levinta Ecaterina 5
Moraru Victoria 6
+3
View File
@@ -0,0 +1,3 @@
4.17
Paduraru Vasile 8
Postasul Valentina 1
+12
View File
@@ -0,0 +1,12 @@
7
Postasul Valentina 451
Munteanu Ion 232
Prisacaru Viorica 332
Paduraru Vasile 258
Mocanu Petru 2919
Levinta Ecaterina 3125
Moraru Victoria 645
+3
View File
@@ -0,0 +1,3 @@
1137.43
Levinta Ecaterina 3125
Munteanu Ion 232
+14
View File
@@ -0,0 +1,14 @@
8
Postasul Valentina 1451
Munteanu Ion 1232
Prisacaru Viorica 3332
Paduraru Vasile 2258
Mocanu Petru 2919
Levinta Ecaterina 3125
Moraru Victoria 645
Munteanu Elena 3289
+3
View File
@@ -0,0 +1,3 @@
2281.38
Prisacaru Viorica 3332
Moraru Victoria 645
+10
View File
@@ -0,0 +1,10 @@
9
Postasul Valentina 1451
Munteanu Ion 1232
Prisacaru Viorica 3332
Paduraru Vasile 2258
Mocanu Petru 4000
Levinta Ecaterina 3125
Moraru Victoria 645
Munteanu Elena 3289
Panzaru Maria 3999
+3
View File
@@ -0,0 +1,3 @@
2592.33
Mocanu Petru 4000
Moraru Victoria 645
+12
View File
@@ -0,0 +1,12 @@
10
Postasul Valentina 1451
Munteanu Ion 4000
Prisacaru Viorica 3332
Paduraru Vasile 2258
Mocanu Petru 3901
Levinta Ecaterina 3125
Moraru Victoria 645
Munteanu Elena 3289
Panzaru Maria 3999
Rotaru Constantin 3998
+3
View File
@@ -0,0 +1,3 @@
2999.80
Munteanu Ion 4000
Moraru Victoria 645
+12
View File
@@ -0,0 +1,12 @@
10
Postasul Valentina 1451
Munteanu Ion 200
Prisacaru Viorica 3332
Paduraru Vasile 2258
Mocanu Petru 901
Levinta Ecaterina 125
Moraru Victoria 645
Munteanu Elena 3289
Panzaru Maria 3999
Rotaru Constantin 98
+3
View File
@@ -0,0 +1,3 @@
1629.80
Panzaru Maria 3999
Rotaru Constantin 98
+12
View File
@@ -0,0 +1,12 @@
10
Postasul Valentina 3993
Munteanu Ion 3999
Prisacaru Viorica 3998
Paduraru Vasile 3997
Mocanu Petru 3996
Levinta Ecaterina 3995
Moraru Victoria 3994
Munteanu Elena 4000
Panzaru Maria 3992
Rotaru Constantin 3991
+3
View File
@@ -0,0 +1,3 @@
3995.50
Munteanu Elena 4000
Rotaru Constantin 3991
+12
View File
@@ -0,0 +1,12 @@
10
Postasul Valentina 3983
Munteanu Ion 3999
Prisacaru Viorica 3998
Paduraru Vasile 3997
Mocanu Petru 4000
Levinta Ecaterina 3995
Moraru Victoria 3994
Munteanu Elena 3996
Panzaru Maria 3982
Rotaru Constantin 3981
+10
View File
@@ -0,0 +1,10 @@
1
2
3
4
5
6
7
8
9
10
+11
View File
@@ -0,0 +1,11 @@
10
I
V
VI
VII
VIII
IX
X
II
III
IV
+11
View File
@@ -0,0 +1,11 @@
10
1
5
6
7
8
9
10
2
3
4
+11
View File
@@ -0,0 +1,11 @@
10
CCXXXIX
MDLVIII
MCMXLIX
MMMMCDXXXIV
DLXXXIX
MMMMCDXLIX
MMXXXVIII
MDLXIX
CDXCIX
MMMMMMCDXLIV
+11
View File
@@ -0,0 +1,11 @@
10
239
1558
1949
4434
589
4449
2038
1569
499
6444
+11
View File
@@ -0,0 +1,11 @@
10
XIV
XV
XVI
XVIII
XIX
XX
XI
XII
XVII
XIII
+11
View File
@@ -0,0 +1,11 @@
10
14
15
16
18
19
20
11
12
17
13
+11
View File
@@ -0,0 +1,11 @@
10
XXI
XXII
XXVII
XXVIII
XXIX
XXX
XXIII
XXIV
XXV
XXVI
+11
View File
@@ -0,0 +1,11 @@
10
21
22
27
28
29
30
23
24
25
26
+12
View File
@@ -0,0 +1,12 @@
10
XXXI
XXXII
XXXIII
XXXVII
XXXVIII
XXXIX
XL
XXXIV
XXXV
XXXVI
+11
View File
@@ -0,0 +1,11 @@
10
31
32
33
37
38
39
40
34
35
36
+11
View File
@@ -0,0 +1,11 @@
10
LI
LII
LIII
LIV
LV
LVI
LVII
LVIII
LIX
LX
+11
View File
@@ -0,0 +1,11 @@
10
51
52
53
54
55
56
57
58
59
60
+7
View File
@@ -0,0 +1,7 @@
6
MCDXVIII
MMDCCCXCIX
MMMMMMMMMM
MMMMCDLXVIII
LMIII
DLXIV
+7
View File
@@ -0,0 +1,7 @@
6
1418
2899
10000
4468
953
564
+8
View File
@@ -0,0 +1,8 @@
7
MMI
MMII
MMIII
MMIV
MCMIX
MCMXCIX
MDXLIV
+8
View File
@@ -0,0 +1,8 @@
7
2001
2002
2003
2004
1909
1999
1544
+13
View File
@@ -0,0 +1,13 @@
9
LXIV
MMXCVII
MMMDCVIII
MMDCCCLXIV
CMLXIX
MMMCDLXV
MMMDCCCXCVII
XCIX
CDXLIV
+10
View File
@@ -0,0 +1,10 @@
9
64
2097
3608
2864
969
3465
3897
99
444

Some files were not shown because too many files have changed in this diff Show More