100% found this document useful (1 vote)
56 views

PDF Competitive Programming in Python: 128 Algorithms to Develop your Coding Skills 1st Edition Christoph Dürr download

Develop

Uploaded by

goamstherh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
56 views

PDF Competitive Programming in Python: 128 Algorithms to Develop your Coding Skills 1st Edition Christoph Dürr download

Develop

Uploaded by

goamstherh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

Download the full version of the textbook now at textbookfull.

com

Competitive Programming in Python: 128


Algorithms to Develop your Coding Skills 1st
Edition Christoph Dürr

https://textbookfull.com/product/competitive-
programming-in-python-128-algorithms-to-develop-
your-coding-skills-1st-edition-christoph-durr/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Algorithmic Thinking. Learn Algorithms...Your Coding


Skills 2ed 2024 Zingaro D.

https://textbookfull.com/product/algorithmic-thinking-learn-
algorithms-your-coding-skills-2ed-2024-zingaro-d/

textbookfull.com

Good Habits for Great Coding: Improving Programming Skills


with Examples in Python Michael Stueben

https://textbookfull.com/product/good-habits-for-great-coding-
improving-programming-skills-with-examples-in-python-michael-stueben/

textbookfull.com

Good Habits for Great Coding: Improving Programming Skills


with Examples in Python 1st Edition Michael Stueben

https://textbookfull.com/product/good-habits-for-great-coding-
improving-programming-skills-with-examples-in-python-1st-edition-
michael-stueben/
textbookfull.com

Healing Your Eyes with Chinese Medicine Acupuncture


Acupressure Chinese Herbs Andy Rosenfarb

https://textbookfull.com/product/healing-your-eyes-with-chinese-
medicine-acupuncture-acupressure-chinese-herbs-andy-rosenfarb/

textbookfull.com
CFD Techniques and Energy Applications 1st Edition Zied
Driss

https://textbookfull.com/product/cfd-techniques-and-energy-
applications-1st-edition-zied-driss/

textbookfull.com

Globalization, Productivity and Production Networks in


ASEAN: Enhancing Regional Trade and Investment Fithra
Faisal Hastiadi
https://textbookfull.com/product/globalization-productivity-and-
production-networks-in-asean-enhancing-regional-trade-and-investment-
fithra-faisal-hastiadi/
textbookfull.com

3rd International Conference on Wireless Intelligent and


Distributed Environment for Communication WIDECOM 2020
Isaac Woungang
https://textbookfull.com/product/3rd-international-conference-on-
wireless-intelligent-and-distributed-environment-for-communication-
widecom-2020-isaac-woungang/
textbookfull.com

The Performance of Nationalism India Pakistan and the


Memory of Partition 1st Edition Jisha Menon

https://textbookfull.com/product/the-performance-of-nationalism-india-
pakistan-and-the-memory-of-partition-1st-edition-jisha-menon/

textbookfull.com

Discourses on Sustainability: Climate Change, Clean


Energy, and Justice Elena V. Shabliy

https://textbookfull.com/product/discourses-on-sustainability-climate-
change-clean-energy-and-justice-elena-v-shabliy/

textbookfull.com
The Alternative Augustan Age 1st Edition Josiah Osgood

https://textbookfull.com/product/the-alternative-augustan-age-1st-
edition-josiah-osgood/

textbookfull.com
Competitive Programming in Python

Want to kill it at your job interview in the tech industry? Want to win that coding
competition? Learn all the algorithmic techniques and programming skills you need
from two experienced coaches, problem-setters, and judges for coding competitions.
The authors highlight the versatility of each algorithm by considering a variety of
problems and show how to implement algorithms in simple and efficient code. What
to expect:
* Master 128 algorithms in Python.
* Discover the right way to tackle a problem and quickly implement a solution of low
complexity.
* Understand classic problems like Dijkstra’s shortest path algorithm and
Knuth–Morris–Pratt’s string matching algorithm, plus lesser-known data structures
like Fenwick trees and Knuth’s dancing links.
* Develop a framework to tackle algorithmic problem solving, including: Definition,
Complexity, Applications, Algorithm, Key Information, Implementation, Variants,
In Practice, and Problems.
* Python code included in the book and on the companion website.

Christoph Dürr is a senior researcher at the French National Center for Scientific
Research (CNRS), affiliated with the Sorbonne University in Paris. After a PhD in
1996 at Paris-Sud University, he worked for one year as a postdoctoral researcher at
the International Computer Science Institute in Berkeley and one year in the School
of Computer Science and Engineering in the Hebrew University of Jerusalem in
Israel. He has worked in the fields of quantum computation, discrete tomography and
algorithmic game theory, and his current research activity focuses on algorithms and
optimisation. From 2007 to 2014, he taught a preparation course for programming
contests at the engineering school École Polytechnique, and acts regularly as a
problem setter, trainer, or competitor for various coding competitions. In addition, he
loves carrot cake.

Jill-Jênn Vie is a research scientist at Inria in machine learning. He is an alumnus


from École normale supérieure Paris-Saclay, where he founded the algorithmic club
of Paris-Saclay (CAPS) and coached several teams for the International Collegiate
Programming Contest (ICPC). He published a book in theoretical computer science
to help students prepare for prestigious French competitive exams such as Grandes
Écoles or agrégation, and directed a television show “Blame the Algorithm” about
the algorithms that govern our lives. He is part of the advisory board of the French
Computer Science Society (SIF), itself a member of the International Federation for
Information Processing (IFIP).
Competitive Programming
in Python
128 Algorithms to Develop Your Coding Skills

CHRISTOPH DÜRR
CNRS, Sorbonne University

JILL-JÊNN VIE
Inria

Translated by Greg Gibbons and Danièle Gibbons


University Printing House, Cambridge CB2 8BS, United Kingdom
One Liberty Plaza, 20th Floor, New York, NY 10006, USA
477 Williamstown Road, Port Melbourne, VIC 3207, Australia
314–321, 3rd Floor, Plot 3, Splendor Forum, Jasola District Centre, New Delhi – 110025, India
79 Anson Road, #06–04/06, Singapore 079906

Cambridge University Press is part of the University of Cambridge.


It furthers the University’s mission by disseminating knowledge in the pursuit of
education, learning, and research at the highest international levels of excellence.

www.cambridge.org
Information on this title: www.cambridge.org/9781108716826
DOI: 10.1017/9781108591928
© Cambridge University Press 2021
Translation from the French language edition:
Programmation efficace - 128 algorithmes qu’il faut avoir compris et codés en Python au cour de sa vie
By Christoph Dürr & Jill-Jênn Vie
Copyright © 2016 Edition Marketing S.A.
www.editions-ellipses.fr
All Rights Reserved
This publication is in copyright. Subject to statutory exception
and to the provisions of relevant collective licensing agreements,
no reproduction of any part may take place without the written
permission of Cambridge University Press.
First published 2021
Printed in the United Kingdom by TJ Books Limited, Padstow Cornwall
A catalogue record for this publication is available from the British Library.
Library of Congress Cataloging-in-Publication Data
Names: Dürr, Christoph, 1969– author. | Vie, Jill-Jênn, 1990– author. |
Gibbons, Greg, translator. | Gibbons, Danièle, translator.
Title: Competitive programming in Python : 128 algorithms to develop your
coding skills / Christoph Dürr, Jill-Jênn Vie ; translated by Greg
Gibbons, Danièle Gibbons.
Other titles: Programmation efficace. English
Description: First edition. | New York : Cambridge University Press, 2020.
| Includes bibliographical references and index.
Identifiers: LCCN 2020022774 (print) | LCCN 2020022775 (ebook) |
ISBN 9781108716826 (paperback) | ISBN 9781108591928 (epub)
Subjects: LCSH: Python (Computer program language) | Algorithms.
Classification: LCC QA76.73.P98 D8713 2020 (print) | LCC QA76.73.P98
(ebook) | DDC 005.13/3–dc23
LC record available at https://lccn.loc.gov/2020022774
LC ebook record available at https://lccn.loc.gov/2020022775
ISBN 978-1-108-71682-6 Paperback
Cambridge University Press has no responsibility for the persistence or accuracy of
URLs for external or third-party internet websites referred to in this publication
and does not guarantee that any content on such websites is, or will remain,
accurate or appropriate.
Contents

Preface page ix

1 Introduction 1
1.1 Programming Competitions 1
1.2 Python in a Few Words 5
1.3 Input-Output 13
1.4 Complexity 17
1.5 Abstract Types and Essential Data Structures 20
1.6 Techniques 28
1.7 Advice 37
1.8 A Problem: ‘Frosting on the Cake’ 39

2 Character Strings 42
2.1 Anagrams 42
2.2 T9—Text on 9 Keys 43
2.3 Spell Checking with a Lexicographic Tree 46
2.4 Searching for Patterns 48
2.5 Maximal Boundaries—Knuth–Morris–Pratt 49
2.6 Pattern Matching—Rabin–Karp 56
2.7 Longest Palindrome of a String—Manacher 59

3 Sequences 62
3.1 Shortest Path in a Grid 62
3.2 The Levenshtein Edit Distance 63
3.3 Longest Common Subsequence 65
3.4 Longest Increasing Subsequence 68
3.5 Winning Strategy in a Two-Player Game 70

4 Arrays 72
4.1 Merge of Sorted Lists 73
4.2 Sum Over a Range 74
4.3 Duplicates in a Range 74
4.4 Maximum Subarray Sum 75
vi Contents

4.5 Query for the Minimum of a Range—Segment Tree 75


4.6 Query the Sum over a Range—Fenwick Tree 77
4.7 Windows with k Distinct Elements 80

5 Intervals 82
5.1 Interval Trees 82
5.2 Union of Intervals 85
5.3 The Interval Point Cover Problem 85

6 Graphs 88
6.1 Encoding in Python 88
6.2 Implicit Graphs 90
6.3 Depth-First Search—DFS 91
6.4 Breadth-First Search—BFS 93
6.5 Connected Components 94
6.6 Biconnected Components 97
6.7 Topological Sort 102
6.8 Strongly Connected Components 105
6.9 2-Satisfiability 110

7 Cycles in Graphs 113


7.1 Eulerian Tour 113
7.2 The Chinese Postman Problem 116
7.3 Cycles with Minimal Ratio of Weight to Length—Karp 117
7.4 Cycles with Minimal Cost-to-Time Ratio 120
7.5 Travelling Salesman 120
7.6 Full Example: Menu Tour 121

8 Shortest Paths 124


8.1 Composition Property 124
8.2 Graphs with Weights 0 or 1 126
8.3 Graphs with Non-negative Weights—Dijkstra 127
8.4 Graphs with Arbitrary Weights—Bellman–Ford 130
8.5 All Source–Destination paths—Floyd–Warshall 132
8.6 Grid 133
8.7 Variants 135

9 Matchings and Flows 138


9.1 Maximum Bipartite Matching 139
9.2 Maximal-Weight Perfect Matching—Kuhn–Munkres 145
9.3 Planar Matching without Crossings 151
9.4 Stable Marriages—Gale–Shapley 153
Contents vii

9.5 Maximum Flow by Ford–Fulkerson 155


9.6 Maximum Flow by Edmonds–Karp 158
9.7 Maximum Flow by Dinic 159
9.8 Minimum s − t Cut 162
9.9 s − t Minimum Cut for Planar Graphs 163
9.10 A Transport Problem 165
9.11 Reductions between Matchings and Flows 165
9.12 Width of a Partial Order—Dilworth 167

10 Trees 171
10.1 Huffman Coding 172
10.2 Lowest Common Ancestor 174
10.3 Longest Path in a Tree 178
10.4 Minimum Weight Spanning Tree—Kruskal 179

11 Sets 182
11.1 The Knapsack Problem 182
11.2 Making Change 184
11.3 Subset Sum 185
11.4 The k-sum Problem 187

12 Points and Polygons 189


12.1 Convex Hull 190
12.2 Measures of a Polygon 193
12.3 Closest Pair of Points 195
12.4 Simple Rectilinear Polygon 198

13 Rectangles 200
13.1 Forming Rectangles 200
13.2 Largest Square in a Grid 201
13.3 Largest Rectangle in a Histogram 202
13.4 Largest Rectangle in a Grid 204
13.5 Union of Rectangles 205
13.6 Union of Disjoint Rectangles 212

14 Numbers and Matrices 214


14.1 GCD 214
14.2 Bézout Coefficients 214
14.3 Binomial Coefficients 215
14.4 Fast Exponentiation 216
14.5 Prime Numbers 217
14.6 Evaluate an Arithmetical Expression 218
viii Contents

14.7 System of Linear Equations 221


14.8 Multiplication of a Matrix Sequence 225

15 Exhaustive Search 227


15.1 All Paths for a Laser 227
15.2 The Exact Cover Problem 231
15.3 Problems 237
15.4 Sudoku 238
15.5 Enumeration of Permutations 240
15.6 Le Compte est Bon 243

16 Conclusion 245
16.1 Combine Algorithms to Solve a Problem 245
16.2 For Further Reading 245
16.3 Rendez-vous on tryalgo.org 246

Debugging tool 247


References 248
Index 251
Preface

Algorithms play an important role in our society, solving numerous mathematical


problems which appear in a broad spectrum of situations. To give a few examples,
think of planning taxi routes given a set of reservations (see Section 9.12); assigning
students to schools in a large urban school district, such as New York (see Section
9.4); or identifying a bottleneck in a transportation network (see Section 9.8). This
is why job interviews in the IT (Information Technology) industry test candidates for
their problem-solving skills. Many programming contests are organised by companies
such as Google, Facebook and Microsoft to spot gifted candidates and then send
them job offers. This book will help students to develop a culture of algorithms and
data structures, so that they know how to apply them properly when faced with new
mathematical problems.
Designing the right algorithm to solve a given problem is only half of the work;
to complete the job, the algorithm needs to be implemented efficiently. This is why
this book also emphasises implementation issues, and provides full source code for
most of the algorithms presented. We have chosen Python for these implementations.
What makes this language so enticing is that it allows a particularly clear and refined
expression, illustrating the essential steps of the algorithm, without obscuring things
behind burdensome notations describing data structures. Surprisingly, it is actually
possible to re-read code written several months ago and even understand it!
We have collected here 128 algorithmic problems, indexed by theme rather than
by technique. Many are classic, whereas certain are atypical. This work should
prove itself useful when preparing to solve the wide variety of problems posed in
programming contests such as ICPC, Google Code Jam, Facebook Hacker Cup,
Prologin, France-ioi, etc. We hope that it could serve as a basis for an advanced
course in programming and algorithms, where even certain candidates for the
‘agrégation de mathématiques option informatique’ (French competitive exam for
the highest teacher’s certification) will find a few original developments. The website
tryalgo.org, maintained by the authors, contains links to the code of this book, as
well as to selected problems at various online contests. This allows readers to verify
their freshly acquired skills.
This book would never have seen the light of day without the support of the
authors’ life partners. Danke, Hương. Merci, 智子. The authors would also like to
thank the students of the École polytechnique and the École normale supérieure
of Paris-Saclay, whose practice, often nocturnal, generated a major portion of the
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
x Preface

material of this text. Thanks to all those who proofread the manuscript, especially
René Adad, Evripidis Bampis, Binh-Minh Bui-Xuan, Stéphane Henriot, Lê Thành
Dũng Nguyễn, Alexandre Nolin and Antoine Pietri. Thanks to all those who improved
the programs on GitHub: Louis Abraham, Lilian Besson, Ryan Lahfa, Olivier Marty,
Samuel Tardieu and Xavier Carcelle. One of the authors would especially like to thank
his past teacher at the Lycée Thiers, Monsieur Yves Lemaire, for having introduced
him to the admirable gem of Section 2.5 on page 52.
We hope that the reader will pass many long hours tackling algorithmic problems
that at first glance appear insurmountable, and in the end feel the profound joy when
a solution, especially an elegant solution, suddenly becomes apparent.
Finally, we would like to thank Danièle and Greg Gibbons for their translation of
this work, even of this very phrase.
Attention, it’s all systems go!
1 Introduction

You, my young friend, are going to learn to program the algorithms of this book,
and then go on to win programming contests, sparkle during your job interviews,
and finally roll up your sleeves, get to work, and greatly improve the gross national
product!

Mistakenly, computer scientists are still often considered the magicians of modern
times. Computers have slowly crept into our businesses, our homes and our machines,
and have become important enablers in the functioning of our world. However, there
are many that use these devices without really mastering them, and hence, they do not
fully enjoy their benefits. Knowing how to program provides the ability to fully exploit
their potential to solve problems in an efficient manner. Algorithms and programming
techniques have become a necessary background for many professions. Their mastery
allows the development of creative and efficient computer-based solutions to problems
encountered every day.
This text presents a variety of algorithmic techniques to solve a number of classic
problems. It describes practical situations where these problems arise, and presents
simple implementations written in the programming language Python. Correctly
implementing an algorithm is not always easy: there are numerous traps to avoid and
techniques to apply to guarantee the announced running times. The examples in the
text are embellished with explanations of important implementation details which
must be respected.
For the last several decades, programming competitions have sprung up at every
level all over the world, in order to promote a broad culture of algorithms. The prob-
lems proposed in these contests are often variants of classic algorithmic problems,
presented as frustrating enigmas that will never let you give up until you solve them!

1.1 Programming Competitions

In a programming competition, the candidates must solve several problems in a


fixed time. The problems are often variants of classic problems, such as those
addressed in this book, dressed up with a short story. The inputs to the problems
are called instances. An instance can be, for example, the adjacency matrix of a graph
for a shortest path problem. In general, a small example of an instance is provided,
along with its solution. The source code of a solution can be uploaded to a server via
2 Introduction

a web interface, where it is compiled and tested against instances hidden from the
public. For some problems the code is called for each instance, whereas for others the
input begins with an integer indicating the number of instances occurring in the input.
In the latter case, the program must then loop over each instance, solve it and display
the results. A submission is accepted if it gives correct results in a limited time, on the
order of a few seconds.

Figure 1.1 The logo of the ICPC nicely shows the steps in the resolution of a problem.
A helium balloon is presented to the team for each problem solved.

To give here a list of all the programming competitions and training sites is quite
impossible, and such a list would quickly become obsolete. Nevertheless, we will
review some of the most important ones.

ICPC The oldest of these competitions was founded by the Association for
Computing Machinery in 1977 and supported by them up until 2017. This
contest, known as the ICPC, for International Collegiate Programming Contest,
is organised in the form of a tournament. The starting point is one of the regional
competitions, such as the South-West European Regional Contest (SWERC),
where the two best teams qualify for the worldwide final. The particularity of
this contest is that each three-person team has only a single computer at their
disposal. They have only 5 hours to solve a maximum number of problems
among the 10 proposed. The first ranking criterion is the number of submitted
solutions accepted (i.e. tested successfully against a set of unknown instances).
The next criterion is the sum over the submitted problems of the time between
the start of the contest and the moment of the accepted submission. For each
erroneous submission, a penalty of 20 minutes is added.
There are several competing theories on what the ideal composition of a
team is. In general, a good programmer and someone familiar with algorithms
is required, along with a specialist in different domains such as graph theory,
dynamic programming, etc. And, of course, the team members need to get along
together, even in stressful situations!
For the contest, each team can bring 25 pages of reference code printed in an
8-point font. They can also access the online documentation of the Java API and
the C++ standard library.
Google Code Jam In contrast with the ICPC contest, which is limited to students
up to a Master’s level, the Google Code Jam is open to everyone. This more
recent annual competition is for individual contestants. Each problem comes in
1.1 Programming Competitions 3

general with a deck of small instances whose resolution wins a few points, and
a set of enormous instances for which it is truly important to find a solution
with the appropriate algorithmic complexity. The contestants are informed of
the acceptance of their solution for the large instances only at the end of the
contest. However, its true strong point is the possibility to access the solutions
submitted by all of the participants, which is extremely instructive.
The competition Facebook Hacker Cup is of a similar nature.
Prologin The French association Prologin organises each year a competition
targeted at students up to twenty years old. Their capability to solve algorithmic
problems is put to test in three stages: an online selection, then regional
competitions and concluding with a national final. The final is atypically an
endurance test of 36 hours, during which the participants are confronted with a
problem in Artificial Intelligence. Each candidate must program a “champion”
to play a game whose rules are defined by the organisers. At the end of the
day, the champions are thrown in the ring against each other in a tournament to
determine the final winner.
The website https://prologin.org includes complete archives of past
problems, with the ability to submit algorithms online to test the solutions.
France-IOI Each year, the organisation France-IOI prepares junior and senior
high school students for the International Olympiad in Informatics. Since
2011, they have organised the ‘Castor Informatique’ competition, addressed at
students from Grade 4 to Grade 12 (675,000 participants in 2018). Their website
http://france-ioi.org hosts a large number of algorithmic problems (more
than 1,000).

Numerous programming contests organised with the goal of selecting candidates


for job offers also exist. The web site www.topcoder.com, for example, also includes
tutorials on algorithms, often very well written.
For training, we particularly recommend https://codeforces.com, a well-
respected web site in the community of programming competitions, as it proposes
clear and well-prepared problems.

1.1.1 Training Sites


A number of websites propose problems taken from the annals of competitions, with
the possibility to test solutions as a training exercise. This is notably the case for
Google Code Jam and Prologin (in French). The collections of the annals of the ICPC
contests can be found in various locations.
Traditional online judges The following sites contain, among others, many
problems derived from the ICPC contests.
uva http://uva.onlinejudge.org
icpcarchive http://icpcarchive.ecs.baylor.edu, http://livearchive
.onlinejudge.org
4 Introduction

Chinese online judges Several training sites now exist in China. They tend to
have a purer and more refined interface than the traditional judges. Nevertheless,
sporadic failures have been observed.
poj http://poj.org
tju http://acm.tju.edu.cn (Shut down since 2017)
zju http://acm.zju.edu.cn
Modern online judges Sphere Online Judge http://spoj.com and Kattis
http://open.kattis.com have the advantage of accepting the submission
of solutions in a variety of languages, including Python.
spoj http://spoj.com
kattis http://open.kattis.com
zju http://acm.zju.edu.cn
Other sites
codechef http://codechef.com
codility http://codility.com
gcj http://code.google.com/codejam
prologin http://prologin.org
slpc http://cs.stanford.edu/group/acm
Throughout this text, problems are proposed at the end of each section in rela-
tion to the topic presented. They are accompanied with their identifiers to a judge
site; for example [spoj:CMPLS] refers to the problem ‘Complete the Sequence!’ at
the URL www.spoj.com/problems/CMPLS/. The site http://tryalgo.org contains
links to all of these problems. The reader thus has the possibility to put into practice
the algorithms described in this book, testing an implementation against an online
judge.
The languages used for programming competitions are principally C++ and Java.
The SPOJ judge also accepts Python, while the Google Code Jam contest accepts
many of the most common languages. To compensate for the differences in execution
speed due to the choice of language, the online judges generally adapt the time limit
to the language used. However, this adaptation is not always done carefully, and it is
sometimes difficult to have a solution in Python accepted, even if it is correctly written.
We hope that this situation will be improved in the years to come. Also, certain judges
work with an ancient version of Java, in which such useful classes as Scanner are
not available.

1.1.2 Responses of the Judges


When some code for a problem is submitted to an online judge, it is evaluated via a set
of private tests and a particularly succinct response is returned. The principal response
codes are the following:
1.2 Python in a Few Words 5

Accepted Your program provides the correct output in the allotted time. Congrat-
ulations!
Presentation Error Your program is almost accepted, but the output contains
extraneous or missing blanks or end-of-lines. This message occurs rarely.
Compilation Error The compilation of your program generates errors. Often,
clicking on this message will provide the nature of the error. Be sure to compare
the version of the compiler used by the judge with your own.
Wrong Answer Re-read the problem statement, a detail must have been over-
looked. Are you sure to have tested all the limit cases? Might you have left
debugging statements in your code?
Time Limit Exceeded You have probably not implemented the most efficient
algorithm for this problem, or perhaps have an infinite loop somewhere. Test
your loop invariants to ensure loop termination. Generate a large input instance
and test locally the performance of your code.
Runtime Error In general, this could be a division by zero, an access beyond the
limits of an array, or a pop() on an empty stack. However, other situations can
also generate this message, such as the use of assert in Java, which is often not
accepted.
The taciturn behaviour of the judges nevertheless allows certain information to be
gleaned from the instances. Here is a trick that was used during an ICPC / SWERC
contest. In a problem concerning graphs, the statement indicated that the input con-
sisted of connected graphs. One of the teams doubted this, and wrote a connectivity
test. In the positive case, the program entered into an infinite loop, while in the negative
case, it caused a division by zero. The error code generated by the judge (Time Limit
Exceeded ou Runtime Error) allowed the team to detect that certain graphs in the input
were not connected.

1.2 Python in a Few Words

The programming language Python was chosen for this book, for its readability and
ease of use. In September 2017, Python was identified by the website https://
stackoverflow.com as the programming language with the greatest growth in high-
income countries, in terms of the number of questions seen on the website, notably
thanks to the popularity of machine learning.1 Python is also the language retained
for such important projects as the formal calculation system SageMath, whose critical
portions are nonetheless implemented in more efficient languages such as C++ or C.
Here are a few details on this language. This chapter is a short introduction to
Python and does not claim to be exhaustive or very formal. For the neophyte reader
we recommend the site python.org, which contains a high-quality introduction as
well as exceptional documentation. A reader already familiar with Python can profit

1 https://stackoverflow.blog/2017/09/06/incredible-growth-python/
6 Introduction

enormously by studying the programs of David Eppstein, which are very elegant and
highly readable. Search for the keywords Eppstein PADS.
Python is an interpreted language. Variable types do not have to be declared, they
are simply inferred at the time of assignment. There are neither keywords begin/end
nor brackets to group instructions, for example in the blocks of a function or a loop.
The organisation in blocks is simply based on indentation! A typical error, difficult
to identify, is an erroneous indentation due to spaces used in some lines and tabs
in others.

Basic Data Types


In Python, essentially four basic data types exist: Booleans, integers, floating-point
numbers and character strings. In contrast with most other programming languages,
the integers are not limited to a fixed number of bits (typically 64), but use an arbi-
trary precision representation. The functions—more precisely the constructors: bool,
int, float, str—allow the conversion of an object to one of these basic types. For
example, to access the digits of a specific integer given its decimal representation,
it can be first transformed into a string, and then the characters of the string can be
accessed. However, in contrast with languages such as C, it is not possible to directly
modify a character of a string: strings are immutable. It is first necessary to convert to
a list representation of the characters; see below.

Data Structures
The principal complex data structures are dictionaries, sets, lists and n-tuples. These
structures are called containers, as they contain several objects in a structured manner.
Once again, there are functions dict, set, list and tuple that allow the conversion of
an object into one of these structures. For example, for a string s, the function list(s)
returns a list L composed of the characters of the string. We could then, for example,
replace certain elements of the list L and then recreate a string by concatenating the ele-
ments of L with the expression ‘’.join(L). Here, the empty string could be replaced
by a separator: for example, ‘-’.join([’A’,’B’,’C’]) returns the string “A-B-C”.

1.2.1 Manipulation of Lists, n-tuples, Dictionaries


Note that lists in Python are not linked lists of cells, each with a pointer to its successor
in the list, as is the case in many other languages. Instead, lists are arrays of elements
that can be accessed and modified using their index into the array. A list is written by
enumerating its elements between square brackets [ and ], with the elements separated
by commas.

Lists The indices of a list start with 0. The last element can also be accessed with
the index −1, the second last with −2 and so on. Here are some examples of
operations to extract elements or sublists of a list. This mechanism is known as
slicing, and is also available for strings.
1.2 Python in a Few Words 7

The following expressions have a complexity linear in the length of L, with


the exception of the first, which is in constant time.
L[i] the ith element of L
L[i:j] the list of elements with indices starting at i and up to
(but not including) j
L[:j] the first j elements
L[i:] all the elements from the ith onwards
L[-3:] the last three elements of L
L[i:j:k] elements from the ith up to (but not including) the jth,
taking only every kth element
L[::2] the elements of L with even indices
L[::-1] a reverse copy of L
The most important methods of a list for our usage are listed below. Their
complexity is expressed in terms of n, the length of the list L. A function has
constant amortised complexity if, for several successive calls to it, the average
complexity is constant, even if some of these calls take a time linear in n.
len(L) returns the number of elements of the list L O(1)
sorted(L) returns a sorted copy of the list L O(n log n)
L.sort() sorts L in place O(n log n)
L.count(c) the number of occurrences of c in L O(n)
c in L is the element c found in L? O(n)
L.append(c) append c to the end of L amortised O(1)
L.pop() extracts and returns the last element of L amortised O(1)
Thus a list has all the functionality of a stack, defined in Section 1.5.1 on
page 20.
n-tuple An n-tuple behaves much like a list, with a difference in the usage
of parentheses to describe it, as in (1, 2) or (left, ’X’, right). A 1-tuple,
composed of only one element, requires the usage of a comma, as in (2,).
A 0-tuple, empty, can be written as (), or as tuple(), no doubt more readable.
The main difference with lists is that n-tuples are immutable, just like strings.
This is why an n-tuple can serve as a key in a dictionary.
Dictionaries Dictionaries are used to associate objects with values, for example
the words of a text with their frequency. A dictionary is constructed as
comma-separated key:value pairs between curly brackets, such as {’the’: 4,
’bread’: 1, ’is’: 6}, where the keys and values are separated by a colon.
An empty dictionary is obtained with {}. A membership test of a key x in a
dictionary dic is written x in dic. Behind a dictionary there is a hash table,
hence the complexity of the expressions x in dic, dic[x], dic[x] = 42
is in practice constant time, even if the worst-case complexity is linear,
a case obtained in the improbable event of all keys having the same hash
value.
If the keys of a dictionary are all the integers between 0 and n − 1, the use of
a list is much more efficient.
8 Introduction

A loop in Python is written either with the keyword for or with while. The nota-
tion for the loop for is for x in S:, where the variable x successively takes on the
values of the container S, or of the keys of S in the case of a dictionary. In contrast,
while L: will loop as long as the list L is non-empty. Here, an implicit conversion of
a list to a Boolean is made, with the convention that only the empty list converts to
False.
At times, it is necessary to handle at the same time the values of a list along with
their positions (indices) within the list. This can be implemented as follows:

for index in range(len(L)):


value = L[index]
# ... handling of index and value

The function enumerate allows a more compact expression of this loop:

for index, value in enumerate(L):


# ... handling of index and value

For a dictionary, the following loop iterates simultaneously over the keys and
values:

for key, value in dic.items():


# ... handling of key and value

1.2.2 Specificities: List and Dictionary Comprehension, Iterators


List and Dictionary Comprehension
The language Python provides a syntax close to the notation used in mathematics for
certain objects. To describe the list of squares from 0 to n2 , it is possible to use a list
comprehension:

>>> n = 5
>>> squared_numbers = [x ** 2 for x in range(n + 1)]
>>> squared_numbers
[0, 1, 4, 9, 16, 25]

which corresponds to the set {x 2 |x = 0, . . . ,n} in mathematics.


This is particularly useful to initialise a list of length n:

>>> t = [0 for _ in range(n)]


>>> t
[0, 0, 0, 0, 0]
1.2 Python in a Few Words 9

or to initialise counters for the letters in a string:

>>> my_string = "cowboy bebop"


>>> nb_occurrences = {letter: 0 for letter in my_string}
>>> nb_occurrences
{’c’: 0, ’o’: 0, ’w’: 0, ’b’: 0, ’y’: 0, ’ ’: 0, ’e’: 0, ’p’: 0}

The second line, a dictionary comprehension, is equivalent to the following:

nb_occurrences = {}
for letter in my_string:
nb_occurrences[letter] = 0

Ranges and Other Iterators


To loop over ranges of integers, the code for i in range(n): can be used to run over
the integers from 0 to n − 1. Several variants exist:

range(k, n) from k to n − 1
range(k, n, 2) from k to n − 1 two by two
range(n - 1, -1, -1) from n − 1 to 0 (−1 excluded) in decreasing order.

In early versions of Python, range returned a list. Nowadays, for efficiency, it


returns an object known as an iterator, which produces integers one by one, if and
when the for loop claims a value. Any function can serve as an iterator, as long
as it can produce elements at different moments of its execution using the keyword
yield. For example, the following function iterates over all pairs of elements of a
given list:.

def all_pairs(L):
n = len(L)
for i in range(n):
for j in range(i + 1, n):
yield (L[i], L[j])

1.2.3 Useful Modules and Packages


Modules
Certain Python objects must be imported from a module or a package with the
command import. A package is a collection of modules. Two methods can be used;
the second avoids potential naming collisions between the methods in different
modules:
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
10 Introduction

>>> from math import sqrt


>>> sqrt(4)
2
>>> import math
>>> math.sqrt(4)
2

math This module contains mathematical functions and constants such as log,
sqrt, pi, etc. Python operates on integers with arbitrary precision, thus there
is no limit on their size. As a consequence, there is no integer equivalent to
represent −∞ or +∞. For floating point numbers on the other hand, float(’-
inf’) and float(’inf’) can be used. Beginning with Python 3.5, math.inf (or
from math import inf) is equivalent to float(’inf’).
fractions This module exports the class Fraction, which allows computations
with fractions without the loss of precision of floating point calculations. For
example, if f is an instance of the class Fraction, then str(f) returns a string
similar to the form “3/2”, expressing f as an irreducible fraction.
bisect Provides binary (dichotomous) search functions on a sorted list.
heapq Provides functions to manipulate a list as a heap, thus allowing an element
to be added or the smallest element removed in time logarithmic in the size of
the heap; see Section 1.5.4 on page 22.
string This module provides, for example, the function ascii_lowercase, which
returns its argument converted to lowercase characters. Note that the strings
themselves already provide numerous useful methods, such as strip, which
removes whitespace from the beginning and end of a string and returns the
result, lower, which converts all the characters to lowercase, and especially
split, which detects the substrings separated by spaces (or by another separa-
tor passed as an argument). For example, “12/OCT/2018”.split(“/”) returns
[“12”, “OCT”, “2018”].

Packages
One of the strengths of Python is the existence of a large variety of code packages.
Some are part of the standard installation of the language, while others must be
imported with the shell command pip. They are indexed and documented at the web
site pypi.org. Here is a non-exhaustive list of very useful packages.

tryalgo All the code of the present book is available in a package called tryalgo
and can be imported in the following manner: pip install tryalgo.

>>> import tryalgo


>>> help(tryalgo) # for the list of modules
>>> help(tryalgo.arithm) # for a particular module

collections To simplify life, the class from collections import Counter can
be used. For an object c of this class, the expression c[x] will return 0 if x is not
1.2 Python in a Few Words 11

a key in c. Only modification of the value associated with x will create an entry
in c, such as, for example, when executing the instruction c[x] += 1. This is
thus slightly more practical than a dictionary, as is illustrated below.

>>> c = {} # dictionary
>>> c[’a’] += 1 # the key does not exist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: ’a’
>>> c[’a’] = 1
>>> c[’a’] += 1 # now it does
>>> c
{’a’: 2}
>>> from collections import Counter
>>> c = Counter()
>>> c[’a’] += 1 # the key does not exist, so it is created
Counter({’a’: 1})
>>> c = Counter(’cowboy bebop’)
Counter({’o’: 3, ’b’: 3, ’c’: 1, ’w’: 1, ’y’: 1, ’ ’: 1, ’e’: 1, ’p’: 1})

The collections package also provides the class deque, for double-ended
queue, see Section 1.5.3 on page 21. With this structure, elements can be added
or removed either from the left (head) or from the right (tail) of the queue. This
helps implement Dijkstra’s algorithm in the case where the edges have only
weights 0 or 1, see Section 8.2 on page 126.
This package also provides the class defaultdict, which is a dictionary that
assigns default values to keys that are yet in the dictionary, hence a generalisa-
tion of the class Counter.

>>> from collections import defaultdict


>>> g = defaultdict(list)
>>> g[’paris’].append(’marseille’) # ’paris’ key is created on the fly
>>> g[’paris’].append(’lyon’)
>>> g
defaultdict(<class ’list’>, {’paris’: [’marseille’, ’lyon’]})
>>> g[’paris’] # behaves like a dict
[’marseille’, ’lyon’]

See also Section 1.3 on page 13 for an example of reading a graph given as
input.
numpy This package provides general tools for numerical calculations involving
manipulations of large matrices. For example, numpy.linalg.solve solves
a linear system, while numpy.fft.fft calculates a (fast) discrete Fourier
transform.

While writing the code of this book, we have followed the norm PEP8, which
provides precise recommendations on the usage of blanks, the choice of names for
variables, etc. We advise the readers to also follow these indications, using, for exam-
ple, the tool pycodestyle to validate the structure of their code.
12 Introduction

1.2.4 Interpreters Python, PyPy, and PyPy3


We have chosen to implement our algorithms in Python 3, which is already over
12 years old,2 while ensuring backwards compatibility with Python 2. The principal
changes affecting the code appearing in this text concern print and division between
integers. In Python 3, 5 / 2 is equal to 2.5, whereas it gives 2 in Python 2. The integer
division operator // gives the same result for both versions. As for print, in Python 2
it is a keyword, whereas in Python 3 it is a function, and hence requires the parameters
to be enclosed by parentheses.
The interpreter of reference is CPython, and its executable is just called python.
According to your installation, the interpreter of Python 3 could be called python or
python3. Another much more efficient interpreter is PyPy, whose executable is called
pypy in version 2 and pypy3 in version 3. It implements a subset of the Python
language, called RPython, with quite minimal restrictions, which essentially allow the
inference of the type of a variable by an analysis of the source code. The inconvenience
is that pypy is still under development and certain modules are not yet available. But
it can save your life during a contest with time limits!

1.2.5 Frequent Errors


Copy
An error often made by beginners in Python concerns the copying of lists. In the
following example, the list B is in fact just a reference to A. Thus a modification of
B[0] results also in a modification of A[0].

A = [1, 2, 3]
B = A # Beware! Both variables refer to the same object

For B to be a distinct copy of A, the following syntax should be used:

A = [1, 2, 3]
B = A[:] # B becomes a distinct copy of A

The notation [:] can be used to make a copy of a list. It is also possible to make a
copy of all but the first element, A[1 :], or all but the last element, A[: −1], or even
in reverse order A[:: −1]. For example, the following code creates a matrix M, all of
whose rows are the same, and the modification of M[0][0] modifies the whole of the
first column of M.

M = [[0] * 10] * 10 # Do not write this!

2 Python 3.0 final was released on 3 December, 2008.


1.3 Input-Output 13

A square matrix can be correctly initialised using one of the following expressions:

M1 = [[0] * 10 for _ in range(10)]


M2 = [[0 for j in range(10)] for i in range(10)]

The module numpy permits easy manipulations of matrices; however, we have cho-
sen not to profit from it in this text, in order to have generic code that is easy to translate
to Java or C++.

Ranges
Another typical error concerns the use of the function range. For example, the follow-
ing code processes the elements of a list A between the indices 0 and 9 inclusive, in
order.

for i in range(0, 10): # 0 included, 10 excluded


process(A[i])

To process the elements in descending order, it is not sufficient to just swap the
arguments. In fact, range(10, 0, -1)—the third argument indicates the step—is the
list of elements with indices 10 (included) to 0 (excluded). Thus the loop must be
written as:

for i in range(9, -1, -1): # 9 included, -1 excluded


process(A[i])

1.3 Input-Output

1.3.1 Read the Standard Input


For most problems posed by programming contests, the input data are read from
standard input, and the responses displayed on standard output. For example, if the
input file is called test.in, and your program is prog.py, the contents of the input
file can be directed to your program with the following command, launched from a
command window:

python prog.py < test.in

In general, under Mac OS X, a command window can be obtained


by typing Command-Space Terminal, and under Windows, via
>_
Start → Run → cmd.
If you are running Linux, the keyboard shortcut is generally Alt-
F2, but that you probably already knew. . .
14 Introduction

If you wish to save the output of your program to a file called test.out, type:

python prog.py < test.in > test.out

A little hint: if you want to display the output at the same time as it is being written
to a file test.out, use the following (the command tee is not present by default in
Windows):

python prog.py < test.in | tee test.out

The inputs can be read line by line via the command input(), which returns the
next input line in the form of a string, excluding the end-of-line characters.3 The
module sys contains a similar function stdin.readline(), which does not suppress
the end-of-line characters, but according to our experience has the advantage of being
four times as fast!
If the input line is meant to contain an integer, we can convert the string with the
function int (if it is a floating point number, then we must use float instead). In
the case of a line containing several integers separated by spaces, the string can first be
cut into different substrings using split(); these can then be converted into integers
with the method map. For example, in the case of two integers height and width to be
read on the same line, separated by a space, the following command suffices:

import sys

height, width = map(int, sys.stdin.readline().split())

If your program exhibits performance problems while reading the inputs, our expe-
rience shows that a factor of two can be gained by reading the whole of the inputs with
a single system call. The following code fragment assumes that the inputs are made
up of only integers, eventually on multiple lines. The parameter 0 in the function
os.read means that the read is from standard input, and the constant M must be an
upper bound on the size of the file. For example, if the file contains 107 integers,
each between 0 and 109 , then as each integer is written with at most 10 characters
and there are at most 2 characters separating the integers (\n and \r), we can choose
M = 12 · 107 .

3 According to the operating system, the end-of-line is indicated by the characters \r, \n, or both, but this
is not important when reading with input(). Note that in Python 2 the behaviour of input() is
different, so it is necessary to use the equivalent function raw_input().
Random documents with unrelated
content Scribd suggests to you:
karkeat hatutki, joita talonpoikaiset kantoivat; mutta nyt ruvettiin
kaikkea senlaista kotimaassa askaroimaan. Pohjanmaalla ja
Viipurissaki rakennettiin laivoja, ja ulkoa hankittiin taitavia
tekomestareita talonpoikia tämmöiseen työhön opettamaan. Muuten
oli tämä aika rikas lakein laatimisestaki. Meri-, Sota-, Hovi- ja
Kirkkosäännöt, niinkuin myöski Käytösorteleita virkamiehille,
annettiin järjestyksen edesauttamiseksi.

Joka Terseeruksen perästä Kuningas Kaarle XI:ta aikana Turun


hiippakuntaa hallitsi, oli Johani Getselius, lisänimellä Vanhempi
erotteeksi pojastansa.[16] Syntymäpaikkansa oli hänellä Ruotsissa,
Vestmanlannin maakunnassa ja Getsalan rusthollissa, jossa hänen
isänsä eli talonpoikana ja josta hän otti Getseliuksen nimensä. Koulut
käytyä tuli hän Upsalassa Studentiksi, josta lähti silloin perustettuun
Dorpatin Akademiaan.[17] Siellä tuli hän Professoriksi, oli kuuluisa
opiltansa ja kirjoitti monta kirjaa, varsinki Greekan kielessä. Vuonna
1649 joutui hän saamaan Skedevin pastorintilan Daalareissa, jossa
hän hiljaisuudessa vaikutti 10 vuotta, ja pantiin sittä Livonmaan
Superintendentiksi. Sitä virkaa edesseisottuansa kolme vuotta
Seurakunnan hyväksi, asetettiin hän v. 1664, kun Terseerus pantiin
viralta pois, pispaksi Turkuun, jossa hän vaikutti 25 vuotta aina
kuolemaansa asti. Kaikissa, missä hänellä oli tekemistä, jätti hänen
järjestävä ja parantava kätensä tässäk ammatissansa
hyväntekeväisiä jälkejä. Pispanviran kanssa oli Akademian
Siakanslerin arvo yhdistetty. Korkiopiston rahanasiat olivat sangen
huonolla jälellä hoitajittensa huolimattomuuden kautta, jota kohtaa
Getselius pyysi saada selvemmäksi. Tämän kaikkinaisten hyväin
taitojen levityspaikan kasvu ja kunnia oli hänellä tarkasti sydämellä.
Varsinki piti hän papinalkujen johdattamisesta huolta ja opetti heille
asianmyötäisemmän saarnauslaadun, kun oli muuten siihen aikaan
jo tullut tavaksi saarnata ei kansan hyväksi, vaan oman oppinsa
näytteeksi. Kouluja koki hän saada parempaan asuun ja neuvoi
opettajille mukavampia opetuskeinoja. Rahvaan valistuminen oli
hänen hellimpänä murheena. Siinä tarkoituksessa piti hän
visiteerinkejä ja papinkokouksia useammasti kun joku muu Suomen
pispa, lähetti tiheästi kirjallisia kehoituksia papeille, aina ja joka
paikassa neuvoin Katekhismuksen vireään ja soveliaahan
harjoittamiseen. Ja tältä ajalta onki se Suomen kansan erinomainen
etu varsin juonnettava, että rahvas on pian yleensä kirjanlukemiseen
harjautunut ja siis hänellä siltä kohdalta Raamatun avarat ja rikkaat
yrttitarhat avoinna. Mutta se laitos, jolla hän sai toimensa varsin
menestymään, oli omituinen kirjanpräntti, josta verrattomasti hyvää
Suomen Seurakunnalle vuoti.[18] Akademialle, kouluille ja rahvaan
ylösrakennukseksi präntättiin siinä runsaasti kirjoja, joitten puutet oli
tähänasti ollut suurena valistuksen esteenä. Suomalaisia kirjoja alkoi
tähän aikaan joksiki löytyä. Getseliuksen präntistä toimitettiin v. 1685
uusi ylöspano Pyhästä Raamatusta, jonka Paimion Provasti Henrikki
Floriinus oli alkukielten jälkeen taas parantanut. Sama mies suomenti
myös sen v. 1686 säätyn Kirkkolain, jossa Getselius oli ollut yhtenä
tekijänä ja joka Suomessaki tuli seurattavaksi. Tähänasti oli, pispa
Juustenin aikana tehty, Laurentius Petrinpojan Kirkonjärjestys ollut
ojennuksena, ja pispat olivat aikain vaatimuksen jälkeen siinä
tehneet parannuksia ja muutoksia hiippakunnallensa. Näillä ja muilla
töillänsä on Getselius Suomalaisten ikuisen kiitollisuuden ja muiston
ansainnut. Mutta hänen elämänjuoksua katsellessa täytyy kyllä
murheella havaita, kuinka hänellä suurten lahjainsa sivulla oli suuria
vikojaki. Mahtinsa vietteli häntä ylpeyteen, joka taas tuotti monta
vihamiestä. Tässä mainitsemma ainoastaan, että hän eli Akademian
Professorein kanssa pian alinomaisissa riidoissa, joita Kanslerilla
Greivi Braahella oli täysi työ saada asettumaan. Joskus vei viha
hänen kelvottomiin kostamisen koetuksiinki. Ett'ei hän ollut
epäluuloistakaan aivan vapaa, näyttävät moniahat esimerkit.

Vanhemmalla Getseliuksella oli poikansa Johani Getselius


Nuoremman kanssa,[19] joka häntä myös tulee pispanvirassa
seuraamaan, monta yhteistä asiata. Tämä oli, käytyänsä koulut ja
Akademiat Ruotsissa, vanhempainsa kanssa muuttanut Livoon ja
sieltä Turkuun. Upsalassa oli hän vielä sittäki käynyt opettelemassa,
ja lähti sieltä, varustettu kuninkaallisella rahanavulla, v. 1670
reisumaan ulkomaalle, siellä oppineemmaksi ja kokeneemmaksi
tulemaan. Hän matkasi Danskan, Hollannin, Englannin ja Franskan
maat. Sittä palasi hän Saksanmaan kautta, jossa, niinkuin muillaki
paikoin, hän tekeysi tuttavaksi oppineimmille ja kuuluisimmille
miehille, joitten kanssa kotiuttuansaki vielä kirjoituksia vaihetteli.
Turkuun tultua neljävuotiselta matkaltaan, asetettiin hän
Jumaluusopin Professoriksi, jossa hän vaikutti niin opettajana, kun
myöski siinä mainiossa Getseliusten Raamattutyössä, jonka isänsä oli
v. 1674 alottanut ja jonka päälle poikaki melkeen kaiken aikansa teki
ahkerasti työtä. Täällä kirjoitti hän myös vuosittain saarnoja
Rukoussunnuntaitten tekstein yli, ja niissä tavattava vapaampi sekä
elävämpi henki vihastutti niin sen ajan puustaimeen takertuneita
oikioppisia, että rupesivat isää ja poikaa niistä vainomaan sekä
vääräoppiseksi kaikella kurin saamaan. Sen näyttävät Getseliusten
riidat Svenoniusta ja Andreeas Peträäusta vasten, ehkä niitten
yltyminen on osiksi muistaki syistä juonnettava. Vuonna 1681 pantiin
Getselius Nuorempi Superintendentiksi Inkerinmaahan, jossa
vaikeassa virassa hän senlaisella innolla ja menestyksellä vaikutti,
että se sivistys, joka siinä maassa meidän päivinä tavataan,
enimmäksi osaksi on hänen työksi luettava. Siinä ammatissa pääsivät
hänen sisälliset voimat, vastuksilta kiinnitetyt, vasta oikein
vahvistumaan. Mutta vanha Getselius, toivossa saada pojan
jälkeenseuraajaksensa Turun hiippakuntaan, toimitti että hän
muutettiin pispan apulaiseksi Turkuun, yhtä vuotta ennen isän
kuolemata, joka tapahtui v. 1690. Heti sai Johani Getselius Nuorempi
Kuninkaalta vahvistuksen pispanvirkaan Turussa. Hänen aikana ovat
Suomella varsin kovat päivät.

Ensimäinen kova rasitus, joka alkupuolelta Getselius Nuoremman


pispanaikaa, mutta Kuningas Kaarle XI:ta viimmeisinä
hallitusvuosina, tapahtui Suomelle, oli ne monet sangen hirviät
nälkä- ja kuolinvuodet, kun nyt perätysten seurasivat rangaistukseksi
sille, enemmäisten hyväin vuotten aikana kansaan levenneelle,
ylpeydelle ja ylellisyydelle. Vuonna 1695 pani halla touot, ja v. 1696
kylmi kaikki selväksi. Kun seuraavanaki vuonna 1697 kylvämättä
jääneitten peltojen ja kylmänki kautta tuli nälkävuosi, niin nousi
surkeus rahvaassa jos jonnekki. Petäjäis-, olki- ja vehkaleipä tuli
yleensä syötäväksi. Hevoisia, koiria ja eläinten raatoja nielivät
nälästyneet ihmiset hyvinä herkkuinaan. Vaan senlaisesta
luonnottomasta ruuasta seurasi kivuloisuus; ihmiset vaelsivat
hahmojen kaltaisina ja alkoivat kuolla tukulta. Kuolleitten luku oli
monta kertaa suurempi, kun syntyneitten. Mikkelistä v. 1696
Juhannukseen seuraavana vuonna, oli yksinään Turun
hiippakunnasta kuollut yli 60,000 hekeä. Nälkää pakoon muutti paljo
rahvasta vieraisiin maihin elämään. Suuri osa maita jäi sillä tavalla
autiaksi; ainoastaan Uusmaan ja Hämeenlinnan lääneissä luettiin ei
vähempätä kun 857 senlaista autiataloa. Kaarle XI:ta koki kyllä
kiitettävällä toimella tätä Suomen kurjuutta auttaa, vaan mitä ne
vähät avut koko maalle tehoitsivat. Mainittu valtakunnallensa
hyväntekeväinen ja elämälleenki ylistettävä Kuningas kuoli v. 1697,
paraaltaan kun tämä onnettomuus maata painoi, jättäin hallituksen
Neuvoille (Raatille) ja pojallensa Kaarlelle.
Se toinen vitsa, kun vastamainitun onnettomuuden perästä nyt
kohtasi isänmaatamme, oli Kaarle XII:ta sodat, jotka joko suorastaan
telmivät Suomessa, elikkä ainaki vetivät sieltä miehiä ja varoja
ulkomaalla tuhottavaksi. Mainittu Kuningas otti 15-vuotiassa isänsä
perästä hallituksen vastaan ja halusi kaikesta sydämestänsä rauhaa,
mutta kun eivät naapurit sitä hänelle suoneet, niin syntyi hänessä se
vallatoin sodanhimo, joka oli vähällä viedä Ruotsin valtakunnan
kadotukseen. Vuonna 1700 nousi ensistä Danskalainen Ruotsia
vasten, mutta se nuori Kaarle kuritti hänen pian raahaan
Traventhaalissa, samana vuonna. Silloin nousi myös Venäjä Ruotsin
varalle. Aleksei Mikhaelovitsa oli siinä valtakunnassa kuollut v. 1676
ja hänen poikansa Feodori I:mäinen hallinnut vuoteen 1682, jonka
perästä Feodorin sisar Sophiia tuli veljeinsä Iivanan ja Pietarin
puolesta hallintoa pitämään, siksikun Pietari I:mäinen, Suureksi
kutsuttu, v. 1689 otti valtikkansa ja rupesi yksinänsä hallitsemaan.
Tämä Tsaari Pietari, nykyisen Venäjän valistuksen perustaja, oli jo
vahvistanut Kardiksen rauhan ja luvannut pysyä rauhasena, mutta
lausui ainaki Moskovassa sodan Ruotsia vasten, samoilla ajoin kun
Kaarle oli Danskan sodan päättänyt. Hän oli myöskin karannut
sotajoukolla Inkerinmaahan. Tästä tiedon saatua lähti Kaarle
pikaisesti häntä vasten ja voitti monikertaisen Venäläisten
sotalauman Narvan tappelussa. Kaksi vihollisistansa jo voitettua lähti
tämä nuori sankari v. 1701 kolmattaki eli Puolan Kuningasta
kurittamaan, jonka niin pani ahtaalle, että sen täytyi Alt-Ranstatin
rauhan kautta (v. 1706) vahvistaa uuden Kuninkaan laillisuutta,
jonka Kaarle oli hänen siaan asettanut Puolalaisten pääksi. Sillä aikaa
oli Tsaari Pietari, jonka voimat yhden, ehkä suurenki, tapon kautta
eivät vielä masenneet, jo v. 1702 ottanut Pähkinälinnan, (nyt
Shlysselporiksi nimitetty,) ja seuraavina vuosina saivat muutki
senseutuiset linnat hänen käsiin. Vuonna 1703 oli hän ruvennut
Nevajoen suulla uutta pääkaupunkia Venäjän vallalle rakentamaan,
jonka nimeltänsä kutsui Pietarporiksi, ja lähellä olevalle Retusaarelle
rakennettiin Kruunstadti. Ruotsalaisten voimat Suomessa olivat kovin
vähät näitä Tsaarin tuumia estämään, eikä niitä pidetty sen
veroisina, koska toivottiin Kuninkaan, Puolasta palattuansa, ne pian
tyhjäksi tekevän. Tsaari kävi tuon tuostaki Ruotsalaisten alustata
vainomassa: Viipuria piiritettiin v. 1706, ehk'ei se yritys menestynyt,
ja Venäläiset kävivät v. 1708 sekä polttivat Porvon kaupungin. Mutta
Kaarle XII:ta, elettyänsä voitollisesti monta vuotta Puolassa, lähti
sieltä viimmen Venäjälle marssimaan. Tsaari kävi häntä vastaan ja
voitettiin ensimmältä, mutta Pultavan tappelussa, Ukräänin
maakunnasa, voitti hän v. 1709 Kaarlen, joka pääsi hädin tuskin
pakenemaan Turkin maahan ja tulee siellä monta vuotta viipymään.
— Tästä Pultavan taposta on varsinainen Ruotsin vallan
onnettomuuden alku luettava. Vihollisia rupesi kaikilta puolin päällen
painamaan. Danskalainen hyökkäsi Skoonen maakuntaan Ruotsissa,
mutta voitettiin Maunus Steenbokilta, joka myös Pommerissa,
Saksanmaalla, soti voitollisesti Saksalaisia (Saksenilaisia) ja
Danskalaisia vasten, joitten kanssa Venäläisiäki oli yhdistyneenä;
vaan hän kukistui siellä viimmen v. 1713. Pultavan tapon perästä
alkoi myös vaino Suomeaki vasten varsin. Maaliskuussa v. 1710
tulivat Venäläiset ja rupesivat Viipuria piirittämään. Tsaari oli itse
paikalla. Vartoväki ja kaupungin asukkaat vastustelivat hyvin
urhoollisesti, mutta muurit ammuttiin heiltä rikki, ja neljäntoista
viikon perästä täytyi kaupungin antauta vihollisten käsiin, 14 p.
Kesäkuuta. Heti perästä otettiin myös Lappeenranta ja Käkisalmi. Nyt
ruvettiin Suomessa vasta innolla hankkiumaan vastuuseen; miehiä
nostettiin tukulta ja nostoväki kävi Viipuria jällensä ottamaan, jost'ei
ainakaan tullut mitään valmista. Mutta Tsaari ei hätyyttänyt enää
maata sinä eikä seuraavana vuonna, ja aika oli melkein levollinen.
Vuonna 1712 oli myöskin rauha, paitsi että Raja-Venäläiset kävivät
Kajaanan kaupungin supi hävittämässä. Tämä tapahtui siitä syystä,
että tullimiehet olivat omistaneet ne sarkapakat, joita Venäjän
markkinamiehet ennemmäisenä vuonna olivat jättäneet kaupunkiin
tuleviksi markkinoiksi varjeitavaksi. Sentähden on tämä vaino saanut
Sarkasodan nimen. Vaan v. 1713 tuli Tsaari täydellä todella Suomea
kukistamaan. Generaali Lybekkeri oli täällä sotajoukon päämiessä, ja
hänellä oli käsky välttää päätappeloa sekä ainoastaan estellä
vihollista. Mutta ei ollut hänessä täyttä tolkkua siihen virkaan. Hän
vetäysi vähitellen taappäin ja antoi ne tilat mennä käsistänsä, joissa
olisi saattanut voitolla vihollisen päälle käydä. Venäläinen otti
Helsingforsin, jossa löytyi suuria varahuoneita ja jonka Ruotsalaiset
lähettyänsä sentähden sytyttivät palamaan. Nyt oli vihollisilla
avonainen tie Turkuun. Ne tulivat sinne, josta paraat virkamiehet ja
tavarat jo olivat Ruotsiin muutetut, ja kaupunki ryöstettiin. Sen
perästä tuli yleinen epätytyväsyys Lybekkerin päämiehyyteen, ja
hänen virka annettiin nyt Armfeltille. Tämä asettautui Pälkäneen
järven tykönä soveliaalle paikalle, jossa Venäläiset, 6:tena
Lokakuuta, kävivät hänen päälle. Armfeltti vastusteli kyllä
urhoollisesti paikastansa ja löi Venäläiset pakoon, mutta täytyi
kuitenki lähteä sieltä Pohjanmaalle vetäymään. Venäläiset tapasivat
hänen sittä Isossa Kyrössä, jossa kova tappelu tapahtui, 19 p.
Helmikuuta v. 1714. Armfeltin jalkaväki ajoi miehullisesti vihollisen
pakenemaan, ja voitto näytti jo olevan hänen käsissä, kun Generaali
de la Barre lähti pakoon ratsuväen kanssa. Tämän kautta tappasivat
Ruotsalaiset kokonaan, ja Armfeltin täytyi paeta Kokkolaan.
Huhtikuussa valtasivat sekä hävittivät Venäläiset Ahvenanmaan, ja
Kesäkuussa antausi Savonlinna. Neuvotki Ruotsissa katsoivat jo
turhaksi työksi enää tahtoa vastustaa vihollista Suomessa. He
käskivät sentähden Armfeltin vähän sotalaumansa kanssa tulla
Ruotsiin, ja Lokakuussa oli jo koko maa jätetty puoltajiltansa.
Kajaana oli ainoa paikka, joka oli vielä Ruotsalaisten hallussa, mutta
kuukaudessa piirittivät Venäläiset senki linnan nälkään v. 1715.
Suomi oli tämän perästä 6 vuotta Venäjän sotaväen hallussa,
siksikun rauha sai aikaseksi. Tämän pitkän sodan aikana, joka Ison
Vihan nimellä vielä elää kansan puheessa, oli isänmaamme kärsinyt
verrattomasti. Rahvasta oli joukoissa noussut vihollista vastustamaan
ja kokenut, missä vaan sai, sitä surmata. Vihollinen sitä vastoin ei
myöskään säästänyt, vaan murhasi, poltti ja ryösti armottomasti. Iso
joukko maan asujamia muutettiin Venäjälle, siellä olevia autioita
maanääriä asututtamaan. Todenmukaisen laskun jälkeen arvellaan
Suomessa tämän vainon lopulla ei löytyneen kun 200,000 henkeä
jälellä. — Kun nämät paraaltaan Suomessa tapahtuivat, eleli
Kuningas Kaarle XII Turkin maassa, kehoittain Turkkilaista sotaan
Tsaaria vasten. Viisi vuotta siellä oltuansa lähti Kuningas v. 1714
kotiinpäin, ja tuli ratsastain kahden seurakumppalin kanssa
Straalsundiin. Tätä paikkaa ahdistivat viholliset niin ankarasti, että
hänell'ei ollut muuta, kun päästä kotimaahansa Ruotsiin, josta hän
nyt oli ollut 15 ajastaikaa poissa. Ruotsin valtakuntaa hätyytti
vihollisia kaikilta haaroilta. Venäläinen, Danskalainen ynnä Preussian,
Saksenin ja Englanniki, (tämä Hannoverin tähden,) Valtiaat olivat nyt
Ruotsia vasten. Kaarlen riikissä oli vielä rahan ynnä kaikkinaisten
tarvetten erinomainen puutet, johonka Baruona Görtsi ihmeellisellä
viisaudellansa ja nerolla löysi ainaki apukeinoja. Sama mies toimitti
myös, että Loföön luodolla, lähellä Ahvenanmaata, ruvettiin v. 1718
Venäjän kanssa rauhasta keskustelemaan; ja oliki siellä Ruotsille
nykyisessä tilassansa etuisa rauha aikaan saamassa, kun Kuningas
Kaarle, joka nyt oli Danskaa vasten sotimassa Norjassa, petollisesti
ammuttiin samana vuonna, ja rauhantoimitukset jäivät siltään. Heti
nousi Kaarlen sisar, Ulriika Eleonuora, hallitusistuimelle. Hän jätti
Neuvoille ja kansalle sen yksivallan, kun hänen isällä ja veljellä oli
ollut. Tästälähin on siis pitkään aikaan Kuninkailla aivan vähä
sanomista Ruotsin valtakunnassa. Tämän Drotningin aikana rehtiin
rauha Englannin ja Preussian kanssa. Tsaari Pietari halusi myöskin
rauhaa, mutta kun ei Ruotsin puolelta ollut täyttä totta sen
matkaansaamisessa, niin vihastui hän ja antoi laivastonsa hävittää
mainitun riikin rantamaita, aina pohjaisimpia ääriä myöten. Mutta
Drotninki jätti v. 1720 koko hallituksen aviomiehellensä, joka
Fredrikki I:mäisen (Hessenistä) nimellä nousi kuninkaalliselle
istuimelle, ja hänen ensimmäinen toimi oli saada rauha Danskan ja
Venäjän kanssa. Kumpanenki sai pian aikaan. Rauha Venäjän kanssa
lyötiin, 30 p. Elokuuta v. 1721, Uuskaupungissa, jonka kautta Ison
Vihan onnettomuus loppui. Siinä jätti Ruotsi Venäjälle Livon, Viron ja
Inkerinmaan, ynnä Viipurin läänin Karjalassa, jossa rajat käytiin. Sitä
vastoin piti muu osa Suomea jällensä annettaman Ruotsille, ja
Venäjän vielä lisäksi maksaman kaksi miljuunaa rahassa. Ja niin oli
nyt Ruotsi tämän kautta menettänyt kaikki ne edut, kun suuri
Gustavi Adolphi oli voittanut. Suomen vastainen onni oli myöskin jo
nähtävä.

Tämän lyhyen ja vaillinaisen osotuksen perästä Kaarle XII:ta


sodista ja Suomen kärsityistä rasituksista, tahdomma nyt vähän
silmäillä Seurakunnan tilaa sillä ajalla. Niinkuin kansallisessaki
päällenkatsannossa, oli myöskin kova hengellinen sota kuohumassa
meidän maassa. Se alussa elävä Evangeliumin oppi oli jo paatunut
opettajitten sydämessä kovaksi kuoreksi, ja tästä syntyi
kovakiskoinen laillisuus ynnä siitä seuraava vihollisuus kaikkea
vapaampata yritystä kohden. Niinkuin Kalikstus Saksanmaalla, niin oli
myös meidän tykönä Terseerus vapaamman ja mielevämmän
käytöksen sekä tiedon oikeutta puoltanut ja saanut sen edestä kärsiä
väijymisiä. Sama oli Getseliuksillenki, isälle ja pojalle, tapahtunut.
Mutta tämä paremmin luonnollinen vapaus, vaikka kyllä totuutta
aavistava, ei käynyt ainakaan ulos siitä määrättömästä vapauden
syvyydestä, jonka tosi elämä Jumalassa tuottaa. Saksanmaalla oli
myöhemmin, Speenerin kautta ja hänen jälestä, senlainen Henki
ruvennut liikkumaan, kun lyöpi supi maahan kaikki luonnon hyvyydet
sekä niin tyhjentää ihmisen, että, jos mieli päästä pahan luontonsa
poluksi jäämästä, hänen täytyy kaikista voimistansa ja kaikesta
sydämestänsä ruveta Totuuteen ynnä siihen perustettuun elämähän
rientämään, jonka kauneudesta hän ennättävän Armon kautta jo on
saanut tiedon ja esimaun. Tämä Hengen vaikutus, jolla Herra joka
aika on uudistanut itsestään luopuneen Seurakuntansa, oli heti tullut
Suomeenki. Ehkä siinä uuden elämän sodassa muutamia, niinkuin
näyttää olleen Pietari Shääferin ja Lauri Ulstaadiuksen laita, oli
joutunut väärälle tielle horjahtamaan, ja he sentähden tulleet vainoa
kärsimään, niin vihasivat tämän ajan sokiat oikean Opin puoltajat
yhtä kovasti niitäki, jotka olivat voineet ijankaikkiseen Totuuteen
perustauta ja kilvoittelivat elämän tietä, niinkuin Pudasjärven papin,
Johani Vegeliuksen ja muitten esimerkit kyllin osottavat. Samalla
tavalla kun opettajatki, jakausi myös kansa tähän aikaan kahtehen
osaan, ja Evangeliumi tuli, luontoansa myöten, riidan ja vainon alla
aina enemmin tutuksi ja puhdistetuksi. Getselius Nuorempi oli alussa
itsekki ollut Speenerin ystävänä sekä elävämmän kristillisen menon
levittäjänä, vaan mitenkä lie vanhemmuuten tullut hairaumaan, ja
liekkö toisellaki puolen ollut joskus syytä, että hän alkoi peräti vihata
ja väijyä tätä uutta tietä. Niinkuin hän vainosi vapaampata
Kristillisyyttä, niin esteli hän myöskin tiedon vapaampia kokemia,
jotka perustuksensa, ehkä harvemmin seurantojensa suhteen, ovat
edelliselle sukuja. Muuten oli Getselius Nuorempi, ei ainoastaan
intosan ja järjestystä rakastavan luonteensa, mutta myöskin suurten
taitoinsa kautta Suomelle hyvää vaikuttanut. Tiheästi kävi hänen,
isältänsä peritystä, präntistä kirjoja Seurakunnan hyväksi, joista
nimitämmä uuden suomenkielisen Virsikirjan, ja ne itseltänsä
vuosittain kirjoitetut Rukoussunnuntaitten saarnantekstein selitykset,
joilla hän edespani parannetun saarnauslaadun esimerkkejä. Siitä
suuresta Raamattutyöstä tuli hänen elinaikana jo Uusi Testamentti
valkeuteen, mutta Vanha Testamentti vasta hänen kuoleman jälestä.
Ennenki jo oltua maastansa pakosalla, lähti hän v. 1713 muitten
muassa vihollisen käsistä Ruotsiin, jossa eli loppupäivänsä, ajellen
riitoja Generaali Lybekkeriä ynnä niitä uskonsa vuoksi
tuomioistuinten eteen nyt vedettyjä vasten. Getseliuksen toimesta
asetettiin myöskin Tukhulmissa erityinen Seura, uskonasioista tulleita
riitoja ratkasemaan. Murheella täytetyt olivat Getseliuksen elämän
viimmeiset päivät, kun näki kaikki vasten tahtojansa lopulla käyvän.
Vuonna 1718 meni hän ijankaikkisuuteen.

Viipurin pispoista emme ole pitkään aikaan maininneet mitään.


Ehkä hekin kokivat hiippakuntansa valistumista edesauttaa, niin ei
heillä ainakaan ollut sitä mahtia, kun Turun pispoilla, joille huoli
Akademian asioista antoi suuremman vaikutustilan isänmaan
hyväksi.[20]

Kun Venäläinen v. 1710 otti Viipurin, niin pakeni pispa Davetti


Lundi Ruotsiin, ja hiippakunnan kirkollinen järjestys jäi aina rauhaan
asti hoidettavaksi maanpastoreista tehdyiltä Konsistoriumeilta.
Samalla tavalla hallittiin Turunki hiippakuntaa, ehkä Getselius
muutaman aikaa Ruotsista pitäin piti huolta kummanki yli. Venäjän
kiitollisesti meiltä muistettavan Ruhtinaan Galitsinin toimista tuli
sodan aikana kirkollinen järjestys pysymään.
c). Uuskaupungin rauhasta niin Suomen valloittamiseen
Vennåläisiltä. (v. 1721—1809.)

Iso viha oli, niinkuin kova ja hävittävä rajuilma, käynyt yli Suomen
maan. Surkialta näytti sen perästä meidän tila. Ihmiset olivat tuiki
vähässä, suuria maanääriä oli autiana, kaupungit hävitetyt, kaikki
kauppa väsäytynyt, hevoiset ja juhdat sangen kalliit ja harvassa
tavattavat, ja pellot eivät olleet muokassa eivätkä kylvetyt. Tämä tuli
vielä pahemmaksi, kun v. 1722 ja 1723 tapahtuivat katovuodet.
Ruotsista lähetettiin jyviä ja koettiin kaikella tavalla ylösauttaa
meidän maata. Veroja helpotettiin, ja vapaavuosia annettiin niille,
jotka tahtoivat uudestaan ylösottaa autiamaita. Itäisen rajan
puoltamiseksi vahvisti Kuningas Fredrikki I:mäinen linnoituksilla sen
entisen Vehkalahden kaupungin, joka nyt sai Haminan nimen (ruots.
Fredrikshamn).

Rauhan perästä asetettiin myöskin pispoja Suomen hiippakunnille.


Turkuun pantiin v. 1721 Hermanni Witte,[21] joka oli Livossa
syntynyt ja opastunut Wittembergissä. Jälkimäisestä paikasta oli hän
tullut poisajetuksi ja sen perästä elänyt korkioissa papillisissa
viroissa. Turkuun tultuansa uudisti hän v. 1722 sen sodan aikana
herenneen Suomen Akademian. Kuoli jo v. 1728. Sittä koroitettiin
pispanvirkaan Suomalainen Lauri Tammeliini. Hän oli ollut
Professorina Turussa, ja siellä Ison Vihan aikana totuttanut sodan
temppuihin Oppivaisia, joita myöskin vaadittiin isänmaata
puoltamaan. Muuten ei ollut silloin joutoa rientämisiin tiedon tiellä.
Tammeliini oli elänyt kauan pakosalla Ruotsissa ja saanut sillä aikaa
siellä edesseisoa virkoja. Hän kuoli v. 1733, ja hänen parästä tuli
Juonas Fahlenius, kotosin Ruotsista, pispaksi. Oltuansa Upsalassa
opissa ja sitte viroissaki siellä, tuli tämäki mies ensistä Professoriksi
Turussa ja sen perästä pispaksi. Näitten pispain hallitessa oli
senlainen aika, jona Usko ainoastaan asuu ihmisten sydämissä eikä
ole vielä päässyt kaikkia hedelmiänsä näyttämään. Pian kaikki tiedon
tutkimiset olivat heidän aikana pysähtyneet.

Kun Viipuri oli tullut viimmerauhassa Venäjän alle jäämään, niin


muutettiin nyt itäisen hiippakunnan pispanistuin Porvoon, ja Johani
Getselius, Pojanpoika erotteeksi esi-isistänsä Turun pispoista, sai jo
v. 1721 tämän viran. Viipurin entinen Gymnasiumi, joka sodanaikana
oli ollut suljettu, tuli myöskin Porvoon muutetuksi.

Tuskin olivat ne haavat kerenneet vähän parata, jotka Suomea


entisestään olivat vaivanneet, kun sota uudelleen nousi meidän
maassa. Asia oli tämmöinen. Ruotsin Kuninkaalla oli
valtakunnassansa aivan vähä sanomista, ja kun talonpoikain sääty
tahtoi antaa hänelle enempi valtaa, niin paneusivat kolme muuta
säätyä sitä vastaan, ja hänen asia paheni pikemmin, kun parani.
Riikissä ilmautui kaksi seuruutta, Hattuin ja Myssyin seuruukseksi
nimitetyt, joitten välillä mielet jakautuivat kahteen osaan, ja se tuli
usein kohtaavissa Riikinkokouksissa nähtäväksi. Välistä oli näistä yksi
voitolla, välistä toinen. Myssyin seuruus, joka halusi rauhassa elää
Venäjän kanssa, oli voitolla 1738-vuotiseen Riikinkokoukseen asti.
Mutta silloin pääsivät ne Franskalle ystävälliset Hatut valtaan, ja
Suomessa ruvettiin heti sotajoukkoa varustamaan. Vuonna 1740
päätettiin sota Venäjätä vasten Riikinkokouksessa, ehkä mieletöintä
se oli nykyisessä tilassa, ja seuraavana vuonna Heinäkuussa kävi
sodanlauset, vaikka ei ollut vielä sotajoukkokaan koolla. Ei siitä siis
hyvää tullutkaan. Esimiesten välillä oli riitoja, ja kun vihollinen kävi
(3 p. Syysk. v. 1741) Lappeenrannan luona Generaali Vrangelin
päälle, ja hän kutsui Buddenbrokkia apuun, niin ei tämä
lähtenytkään, vaan Vrangeli tuli vähällä joukollaan lyödyksi sekä
kaupunki vallatuksi. Tauti alkoi myöskin nyt kovasti tappaa
Ruotsalaisten lierissä. Mutta Venäjällä oli muutoksia tapahtunut,
jotka tuottivat toivon etuisasta rauhasta. Suuri Pietari I:mäinen oli
kuollut v. 1725, ja Venäjän Keisarinkruunu jäänyt hänen puolisolle
Kathariina I:mäislle, joka kuoli v. 1727. Sittä oli Pietari II:nen
hallinnut vuoteen 1730 ja Anna vuoteen 1740. Sen perästä oli
kruunu ollut Iivana III:nella, kun Pietari I:mäisen tytär, Eliisabethi, v.
1741 anasti sen häneltä kapinan kautta. Tämän kapinan tapahtuisa
kävi Leevenhaupti, jolla oli päätoimi Suomen sodasta, sotilakkoon
kolmeksi kuukaudeksi Venäjän kanssa, ja rauhasta alettiin tuumata.
Mutta Leevenhauptin toivoa vastoin laiminlöi Keisarinna, kun oli
ennättänyt valmiiksi varustauta, koko sotilakon, ja vaino alkoi
uudelleen. Leevenhaupti menetti tästä kaiken tolkkunsa, ja vaikka ei
olisi niin aivan pakkoa ollut, vetäysi hän kuitenki taappäin yhdestä
paikasta toiseen. Helsingforsin tykönä tuli hän kaikilta puolin
saarretuksi, ett'ei päässyt päkähtämään. Siinä tapahtui Ruotsalaisille
se suuri häpiä, että koko armeian täytyi antauta viholliselle (4 p.
Syysk. v. 1742). Ruotsin sotamiehet vietiin laivoilla kotimaahansa,
mutta meneytyivät enimmästi matkalla. Suomalaiset saivat myöskin
palata kotiinsa, kun heidän rekimentit olivat ennen tulleet puretuksi.
Nyt ei ollut Ruotsilla muuta, kun anoa rauhaa. Saadaksensa se
helpommasti menestymään, tuumattiin ottaa Herttua Adolphi
Fredrikki perintöruhtinaaksi, joka tapahtuiki, vaikka Daalarilaiset
olivat siitä nostaneet kapinaan. Keisarinnan armeia oli juuri
Suomesta Ruotsin maahan karkaamassa, kun sana tuli Herttuan
valitsemisesta ja vaikutti rauhan. Se lyötiin, 7:tenä p. Elokuuta v.
1743, Turussa, niillä ehdoilla, että Venäjä sai Haminan,
Lappeerannan ja Savonlinnan haltuunsa, ynnä Kymenjoki tuli rajaksi
Venäjän ja Ruotsin välillä. Tämä sota oli maksanut paljo Ruotsille,
mutta ei ollut aivan rasittavainen Suomelle, sillä Venäjän sotalauma
pysyi hyvässä kurissa. — Kun olivat tämän rauhan kautta Ruotsin
rajalinnat saaneet Venäjän alle, niin perusti Fredrikki I:mäinen v.
1745 Loviisan kaupungin ja antoi Ehrensväärdin v. 1749 ruveta
Sveaporin linnaa rakentamaan.

Turun pispa Fahlenius joutui v. 1745 loppuelämäkseen siukaksi ja


kuoli v. 1748. Nyt tuli Ruotsalainen Johani Brovallius, joka oli
Fahleniuksen kivuloisuudessaki Turun hiippakuntaa edesseisonut,
pispaksi. Sitä ennen oli hän ollut Professorina Turussa. Hän kuoli 48
ajastajan vanhana v. 1755. Hänen jälkeenseuraajaksi pantiin Kaarle
Fredrikki Mennanderi, jonka isä oli ollut Pohjanmaalla pastorina ja
vihan aikana elänyt pakosalla Tukhulmissa. Opasteltua Upsalassa ja
Turussa, tuli Mennanderi Professoriksi jälkimäiseen paikkaan. Tähän
aikaan oli von Linneen kautta Luonnontutkinto tullut Ruotsissa
erinomaisesti rakastetuksi. Niin Brovallius kun Mennanderiki olivat
Linneen ystäviä ja itsekki kelpo Luonnontutkijoita. Mennanderi on
ilman sitä vielä monen kirjoituksensa kautta Suomen Historiata
selvittänyt ja sen muistomerkkejä kokoillut. Mutta Jumaluusoppi, jota
ennen Isoa Vihaa oli niin paljon rakastettu, aikoi jäädä syrjään, ja
siitä alkoi uskokin muuttua luonnolliseksi Jumalan ihmettelemiseksi
töistänsä. Painavasta arvosta on se tällä ajalla toimitettu
suomalaisen Raamatun uudistus. Brovallius ja Professori Kleevbergi
olivat tehneet paljo työtä sen parantamisen päälle, jonka perästä
Mennanderi antoi sen v. 1758 ulos präntistä. Tämän parannuksen
perästä on se luettava paraimmiksi Raamatun käännöksiksi.
Seuraavana vuonna tuli myöskin Ruotsin Valtakunnan Laki
suomennettuna valkeuteen.

Brovalliuksen aikana tapahtui muutos hallituksessa. Fredrikki I


kuoli v. 1751 ja se ennen jo jälkeenseuraajaksi katsottu Adolphi
Fredrikki (Holsteinistä) nousi hallitsemaan. Vähän hänellä itsellänsä
sanomista ollen, riitelivät hänen aikana ennen mainitut seuruukset
keskenänsä, ja Riikinkokouksia oli tiheästi. Hattuseuruus oli vähän
päässyt vallalle, kun heti tuli sota, Pommerin sodaksi kutsuttu, jota ei
täydellä todella käyty ja joka päätyi v. 1762, viisi vuotta
kestettyänsä. Sen perästä oli Myssyseuruus päälläpäin, ja oliki niin
melkeen koko tämän Kuninkaan hallitusajan. Adolphi Fredrikki oli v.
1752 matkannut Suomen läpi ja siitä kulustansa antanut Neuvoille
kertomisen ynnä parannettavain puutetten osotuksen. Ehkä se
Ruotsin valtakunnassa tapahtunut rahanseikan sekannus oli
Suomellenki suureksi tapoksi, niin laitettiin toiselta puolen katsoin,
tällä ajalla ainaki parannuksia maan sisämäiseksi eduksi. Suomeen
tuotiin väri- ja lääkkikasvuja istutettavaksi, kaupunkein
kauppaoikeuksia levitettiin, ja uutten fapriikein eli tehtaitten
nousemista toimitettiin. Kuningas Adolphi Fredrikki kuoli v. 1771.

Gustavi III:nen kautta, joka heti isänsä perästä otti kruunun, tulee
se aika päätymään, kun on vuotten 1720 ja 1772 välillä, kutsuttu
Vapausajaksi ja merkitty Kuningasten aivan vähän vallan ynnä siitä
seuraavan sisämäisen hämmennyksen kautta. Viimmeiseksi
mainittuna vuonna vaikutti Gustavi sen muutoksen, joka pelasti
Ruotsin valtakunnan monivallan riidoista, antoi jällensä Kuninkaalle
oikean mahtinsa ja tuotti laillisen hallitusmuodon. Tämän Kuninkaan
ensimmäiset vuodet olivat Suomelle, niinkuin Ruotsillenki, siunatut
hyvällä sovulla ja menestyksellä. Gustavi kävi v. 1775 ensimäisen
kerran meidän maassa ja teki monta laitosta, joista paljon hyvää on
seurannut. Ennen oli hän jo jakanut Suomen 6:teen lääniin ja
määrännyt Maanherrain asuntopaikat lääneinsä keskeen. Nyt alettiin
suurella innolla toimittaa maantilusten jakamista ison jaon kautta.
Vaasaan laitettiin Hovi-Oikeus, joka 28 p. Kesäkuuta v. 1776 tuli
Tukhulmissa vihityksi. Kihlakuntain rajat tulivat tarkemmin käydyiksi,
Tuomarein alustoita jaettiin pienemmiksi, teitä tehtiin uudesta, ja
koskenperkkaukset saivat alkunsa. Uusia kaupunkeja perustettiin:
Kuopio v. 1779, Tamperi 1779, ynnä Kasköö 1785; ja Hämeenlinna
tuli v. 1788 soveliaammalle ja raittiimmalle paikalle muutetuksi.
Kauppa alkoi kukoistaa, ja sota Englannin ja Pohjas-Amerikassa
olevain uutisasuntojensa välillä, oli Suomen laivankulkua
erinomaisesti kartuttava isojen vuokratavarain kulettamisella ja
korkealla tervan ynnä kaikenlaisten laivantarpeitten hinnalla. —
Tämä oli parempi ja rauhaisempi puoli Gustavi III:nen hallituksesta.
Mutta sen loppupuolella nousi maakunnassa suuri epätytyväisyys
moneen Kuninkaan toimeen, ja oliki tähän usein hänen itsensä
syytä, ehkä ne laittomaan vapauteen harjautuneet ylimykset myös
toiselta puolen hakivat syitä vihaansa ja uppiniskaisuuteensa häntä
vasten. Tämä viha puheksi kapinaan siinä sodassa, jonka Gustavi v.
1788 nosti Venäjätä vasten. Mainittu valta, — jossa, Keisarinnan
Eliisabethin v. 1762 kuoltua ja Pietari III:nen muutamia kuukausi
hallittua, uusi Keisarinna Kathariina II:nen oli saanut kruunun, —
sattui silloin olemaan sodassa Turkin kanssa ja kaikki hänen
sotalaumat siellä etelässä. Sentähden toivoiki Gustavi nyt saada
tämän naapurinsa kukistetuksi ja ne maat, kun se oli ennen Ruotsilta
voittanut, jällenotetuksi. Hänen sotajoukko kävi rajan yli, ja
pienempiä tappeloita tapahtui. Meritappelosta Huoglannin tykönä, 17
p. Heinäkuuta, ei seurannut mitään. Itäpuolella Haminata nousivat
Ruotsalaiset maalle, ja sen kaupungin piti kaikilta puolin tulla
piiritetyksi, kun joukko upseerejä ja sotamiehiä äkäysi, eivätkä
tahtoneet totella Kuningasta. He sanoivat sotaa vasten riikin lakeja
alotetuksi. Tällä kovakorvaisuudella oli siinä perustuksensa, että ne
ylimykset, kun 1772-vuoden hallitusmuodon muutoksen kautta olivat
menettäneet valtansa, nyt olivat vahvistuneet ja vannouneet
kapinaliittoon, joka Anjalan liittouksen nimellä on tuttu. Kun
Kuningas oli tästä tiedon saanut, käski hän armeiansa marssia
takasin ja lopetti sen vuoden sotimiset; mutta mainitun liittouksen
päämiehet tulivat kovan rangaistuksen kärsimään. Seuraavana
vuonna tapahtui vähempiä metelejä, vaihettelevaisella onnella.
Ruotsalaiset saivat voiton Parkkumäen tykönä; vaan heidän
luotolaivasto tuli Ruotsinsalmen luona lyödyksi. Mutta vuoden 1790
sotaan varustausi Gustavi III:mas kaikista voimistansa. Varain
keväistä alkoivat nyt metelit, vaan ei tullut mitään päättävätä
toimeen kummankaan puolen, vaikka suurella vihastuksella sodittiin.
Ruotsalaiset saivat voiton Valkialan tykönä; vaan Savitaipaleen ja
Anjalan luona ajoi vihollinen heidät peräytymään. Sillä aikaa oli
Kuningas itse suurella laivastollansa tullut Viipurin lahteen ja
vihollinen salvannut hänen sinne niin pahasti, että hän ainoastaan
suuren tapon kanssa pääsi lyömään itsensä sieltä läpi ja pois. Sitä
vastoin sai hän heti perästä suuren ja painavan voiton
meritappelussa Ruotsinsalmen tykönä. Se voitto vaikutti, että rauha,
14 p. Elokuuta, lyötettiin Värrölän ( Niin kutsutaan tätä paikkaa kylän
keskuudessa. Kirjoissa tule se Verelän nimellä esiin.) kylässä, jossa
kaikki päätettiin samalla asemella pysymään, kun ennen sotaaki. Ei
ollut Suomella ollut pahasti rasitusta tästä sodasta, vaan sen siaan
suuria rahasummia tullut liikkeelle maassa, ja kaikki saaneet kalunsa
korkeaan hintaan menemään. Ainoastaan muutamat sotaa seuraavat
taudit olivat tappaneet ihmisiä, ja väestötä maasta vähentäneet. —
Tämän sodan aikana oli Kuningas Gustavi 1789:vuoden
Riikinkokouksessa kaikenlaisilla keinoilla pakoittanut kansaa
suostumaan siihen niin kutsuttuun Yhdistys ja Vakuutuskirjaan, joka
tuotti Kuninkaalle yhä suuremman vallan. Riikin Neuvot tulivat myös
herkeämään, ja Kuninkaan Korkein Tuomioistuin siaan. Mutta viha
Kuningasta vasten kiihtyi tämän kautta aina enemmin, ja vaikutti,
että hän tuli v. 1792 ammutuksi eräältä Ankarströmiltä. Hän oli
aikanansa rakastanut paljon kirjallisia taitoja sekä kehoittamalla niitä
sytyttänyt.

Suomen läntisellä Seurakunnalla oli Gustavi III:nen aikana, paitsi


Kaarle Fredrikki Mennanderia, joka 1775 muutettiin Pääpispaksi
Upsalaan (k. 1786), seuraavat kaksi pispaa. Jaakko Haartmanni,
syntynyt Tukhulmissa paon aikana, oli yksi. Hän tuli, oltuansa
Professorin viroissa Turussa, Mennanderin perästä pispaksi. Kuoli v.
1788, jonka perästä Jaakko Gadoliini, Suomesta syntysin, tuli siihen
virkaan, hänki Turun Professorista. Tällä ajalla olivat Suomessa
kirjalliset taidot nousemassa, ehkä Usko usein vähenemässä.

Gustavi IV:jäs Adolphi ei ollut vielä täydessä ijässä, kun isä


tapettiin. Hänen setä, Herttua Kaarle hoiti riikin asioita siksikun
Kuningas v. 1796 itse rupesi hallitsemaan. Gustavi Adolphin
ensimmäisinä hallitusvuosina olivat valtakunnan voimat nousemassa,
vaikka katovuosiaki silloin tapahtui. Hänen hallitus oli siihen aikaan ei
moitittava. Tarkkuudellansa koki hän parannella sen isänsä
tuhlauksien kautta velkautuneen Ruotsin riikin varoja.
Koskenperkkausta toimitettiin innolla Suomessa. Huoneenhallitus
siellä tuli myös nyt paljo karttumaan. Sitä edesauttamaan yhdistyi 1
p. Marraskuuta v. 1797 taitavia miehiä Huoneenhallituksen Seuraan,
jonka kautta paljo hyödytystä on isänmaalle tullut. Soita on sen
neuvosta ruvettu muuttamaan kasvavimmiksi maiksi, rokonpanon ja
potakan kylvön ensimmäinen toimittaminen on sen työtä, ynnä paljo
muuta senlaista. Kuningas otti tämän Seuran huostaansa ja vaikutti
sen kautta maan hyväksi. Hän kävi useammasti Suomessa,
viimmekerran v. 1802 Drotninkinsa kanssa, ja näki ahkeruuden sekä
menestyksen yleensä olevan kasvamassa. Mutta syvään juurtunut
viha Franskan Keisaria Napuoleonia vasten vei häntä sotiin, joissa
Ruotsi tuli verrattomasti tappaamaan. Tämä tuotti myöski sen sodan,
joka eroitti koko Suomen maan Ruotsin valtakunnasta. Venäjällä oli
Kathariina II:nen v. 1769 kuollut ja Pauli I:mäinen hallinnut vuoteen
1801, kun hänen poika, se erinomainen Aleksanderi I:mäinen, otti
Keisarinkruunun vastaan. Tilsitin rauhassa oli Aleksanderi ruvennut
ystäväksi Napuoleonin kanssa Englannia vasten. Tästä tuli heti
Aleksanderille sota Ruotsin kanssa, jonka Kuningas oli Englannin
ystävä, ja, niinkuin jo sanottiin, vihasi Napuoleonia. Tammikuussa v.
1808 karkasivat Venäjän sotalaumat kolmelta paikalta rajan yli
Suomeen. Ne nousivat 30,000:teen mieheen. Suomessa ei ollut kun
kolmas verta sotijoita, joitten siis täytyi vetäytä taappäin pienten
nappailemisten vaiheella. Ei ennen kun Siikajoessa paneusi Suomen
armeia oikein vastahakaan, 18 p. Huhtikuuta, ja sai kovan tappelun
perästä voiton. Heti jälestä voittivat Suomalaiset myöskin
Revonlahdessa. Venäläiset rupesivat nyt vuorostaan pakenemaan,
ajetut perästä Suomen armeialta. Sittä tapahtuivat Suomalaisten
voitot Pulkkilan, Joensuun, Lapuvan, Kauhajoen, Alavon tykönä, ja
Venäläinen pakeni Saarijärveen asti. Savossa pidätettiin se Toivolan
lauttapaikassa. Mutta Venäläiset saivat lisää väkeä ja Suomen
tappeloissa sekä tautein kautta vähenneen armeian täytyi vetäytä
jällensä pohjaiseen päin. Oravaisten kappelissa tapahtui Syyskuussa
kova ja verinen tappelu, jossa yö eroitti sotivaiset, vaan
Suomalaisten täytyi paeta aina enemmin Pohjaan. Samassa kuussa,
29 p., tapahtui vähäinen sotilakko, jonka kautta maa Himankata,
ynnä Koljonvirtaa Iisalmessa, myöten jäi Venäläiselle. Sodan
uudelleen alettua saivat Suomalaiset Iisalmessa kunniallisen voiton.
Tämä tapahtui Marraskuussa, jossa uudestaan Olkjoen sovinnon
kautta sota tuli taukoamaan pariksi kuukaudeksi, ja Suomen armeia
jätti koko Oulun läänin sekä asettausi Tornion paikoille. Niin oli nyt
Suomi jätettynä, eikä sen sisällä enää tapeltu. Sittä karkasivat
Venäläiset talvipakkasella v. 1809 Ahvenanmaalle, ynnä Kurkun yli
Uumioon, ja Suomen armeian vähäisten jäännösten täytyi
Kaaliksessa antauta viholliselle sekä saivat palata kotiinsa. — Mikä lie
tämän sodan aikana ottanut Kuningas Gustavi Adolphilta mielen, kun
ei hän lähettänyt apua Suomen armeialle. Ainoastaan Eteläis-
Suomeen tuli Ruotsalaisia, jotk'eivät ainakaan tehneet paljo mitään.
Tämän sodan aikana oli Danmarkkikin yltynyt Ruotsin viholliseksi,
josta vaara yhä suureni. Valtakunnan suurimmassa hädässä ei
auttanut muu keino, kun että Ruotsalaiset, Maaliskuussa v. 1809,
ottivat mielettömän Kuninkaansa vankeuteen ja nostivat Kaarle
XIII:ta hallitusistuimelle. Tämä muutos oli tapahtunut pari viikkoa
ennen kun Suomalaiset Kaaliksessa antausivat. Uusi Kuningas tahtoi
vielä sodalla parantaa riikinsä ahdistettua tilaa, vaan ei auttanut
mikään, ja hänen piti suostua Haminan rauhaan, se 17:ta Syyskuuta
v. 1809. Siinä täytyi Ruotsin antaa Venäjälle koko Suomen,
Ahvenanmaan ja Tornion, niin että Muonio- ja Torniojoet tulivat
rajaksi. Tässä päätyvät nyt monisatavuotiset sodat Suomen
omistamisesta. Ei kauan jälestä sai Ruotsi myöskin rauhan Franskan
ja Danmarkin kanssa.

Joko nyt taas silmäämme, kutka tällä ajalla olivat Suomen Kirkkoa
hallinneet. Jaakko Gadoliini oli ensistä pispana Turussa vuoteen
1802, jolloin hän kuoli ja Jaakko Tengströmi hänen perästä tuli siihen
virkaan. Tämä erinomaisilla luonnon ja tiedon lahjoilla koristettu
mies oli syntynyt Kokkolassa Pohjanmaalla. Ennenkun tuli pispaksi,
oli hän ollut Jumaluusopin Professorina Turussa. Tällä ajalla kukoisti
tiedon tutkinto Suomen Korkiopistossa. Gadoliini ja Tengströmi olivat
siltä kohdalta kehuttavat, jälkimmäinen historiallisten ja muittenki
kirjoitustensa vuoksi. Mutta paitsi näitä löytyi monta muutaki
korkeassa arvossa pidettävätä miestä. Niistä nimitämmä ainoastaan
Professorit Porthaanin ja Kaloniuksen, joitten kuuluisat nimet ovat
ulkomaallaki kaikkuneet. Porvon hiippakunnassa, (josta Viipurin puoli
Ison Vihan perästä oli tullut jäämään Venäjän alle,) oli Johani
Getselius Pojanpoika kuollut v. 1733 ja hänen perästä Danieli
Juslenius, joka on kirjoittanut Suomalaisen Sanakirjan, tullut
pispaksi. Hän pakeni sodanaikana v. 1742 Ruotsiin ja jäi sinne. Sittä
seurasivat Johani Nylanderi (k. 1761), Gabrieli Fortelius (k. 1788),
Paavali Krogius (k. 1792) ynnä Sakharias Cygnääus Vanhempi, joka
kuoli 1809 ja sai Maunus Jaakko Alopääuksen
jälkeenseuraajaksensa. Mainitut miehet vaikuttivat, kukin taitojaan
myöten, hiippakuntansa hyväksi.
V.

Neljäs Aikakausi.

Suomi Venäjän vallan alla.

Tässä sanomma sydämellisen jäähyvästin Ruotsille, jonka kanssa


Suomi oli 650 vuotta, moninaisten vaihetten alla, kulkenut käsi
kädessä, ja jonka kautta Kristinusko ynnä siitä seuraavat edut ja
laitokset olivat tulleet meidän osaksi. Nyt on tästälähin uusi tie meiltä
astuttavana, uuden kumppalin parissa. Venäjän kanssa
yhdistyttyämme ovat rauha, rikkaus ja kaikenlaiset hyvät laitokset jo
moninaisesti näyttäneet, että tästä uudesta tilastamme on kaikkea
menestystä vastakin toivottavana, jos vaan itse tahdomma onellisina
pysyä.[22] —

Venäläisten v. 1808 karattua Suomeen, säästivät he nähtävästi


tätä maatamme, maksoivat kaikki tarvittavansa rahalla ja antoivat
kaikki asiat käydä entistä uraansa. Ainoastaan niillä paikoin, jossa
asukkaat olivat kapinoineet heitä vasten, tuli maa kovaa kuritusta
kärsimään. Kun mainitun vuoden lopulla Suomen armeia oli jo
paennut maastansa Ruotsiin, ja Keisari Aleksanderi jo ennen,
(julistuksen kautta 5:tenä p. Kesäkuussa,) oli tietäantanut Suomen
Pääruhtinaskunnan muuttumattomasti tulleen Venäjän vallan kanssa
yhdistetyksi, niin kutsui hän neljästä Suomen Säädystä, (nimittäin
Vapasukuisten, Pappein, Porvarein, ja Talonpoikain,) miehiä
Herrainpäiville Porvoon maan asioista keskustelemaan. Tämä kokous
piti 22 p. Maaliskuuta v. 1809 tapahtuman. Säädyt tulivat, ja 25:tena
päivänä alkoivat Herrainpäivät, joka oli sama päivä, jona Suomen
armeia Kaaliksessa antausi. Heti alussa antoi Keisari, joka itse oli
tullut Porvoon, Säädyille kirjallisen vakuutuksen näillä sanoilla: "Että
sittäkun Me, Esikatsannon suomisesta, olemme ottaneet Suomen
Pääruhtinaskunnan haltuumme, niin olemme Me tämän kautta
tahtoneet vakuuttaa ja vahvistaa maan Uskon ja perustuslait ynnä
ne edut ja oikeukset kun kullakin Säädyllä nimitetyssä
Pääruhtinaskunnassa erittäin, niinkuin myös kaikilla sen asukkailla
ylimalkaa, yläisemmillä kun alhaisemmilla, tähänasti, Konstitutiuonia
myöten, on ollut: Luvaten pitää kaikki nämät edut ja säännöt
muuttumattomina ja täydessä voimassaan." Tämä vakuutus annettiin
jo se 27 mainitussa kuussa, ja kahden päivän perästä tunnustivat
Säädyt, jokaiselta erittäin uudistetun uskollisuuden valan kautta,
Venäjän Keisarin korkeimmaksi Pääksensä, Valtiaksensa ja
Pääruhtinaaksensa. Keisari lähti heti Turkuun, antain Säätyjen sillä
aikaa keskustella neljästä häneltä eteenpannusta asiasta: 1:ksi Maan
sotamiehistön laitoksesta; 2:ksi Selvemmästä Kruunun maksettavain
ylöskannosta; 3:ksi Suomen myntti- ja rahaseikan selvittämisestä;
4:ksi käski Keisari heidän tutkistella siitä häneltä, Hallitus-Seuran
(Regerings Conselj) nimellä, Suomen Päähallitukseksi määrätystä
laitoksesta. Näistä ynnä moniaista muistaki asioista keskustelivat
Säädyt, ja 19:ta p. Kesäkuuta päätti Keisari, joka nyt oli taas
paikalla, Herrainpäivät. Vähän sen perästä vahvisti hän melkeen
kaikki päätökset, kun Säädyt olivat hänelle eteenpanneet. Asukkaat
vapautettiin, erityistä maksoa vasten rahassa ja jyvissä, 50:ksi
vuodeksi täyden armeiansa ylöspanemisesta: kaikki entiset verot
tulivat pidettäväksi muinaisessa laskussansa, ja Keisari oli sanonut ei
tahtovansa erityistä voittoa ottaa Suomen yhteisistä tuloista: Pankko,
Säätyjen edesvastauksen ja hoidon alla, piti laitettaman j.n.e.
Syyskuussa tapahtui Haminan rauha, jossa Ruotsi antoi Suomen
Venäjälle ja niinmuodoin vahvisti sen, mikä Suomalaisilta itsiltään, jo
sodan alussa valalla ja nyt viimesi Herrainpäivillä, oli tullut tehdyksi.

Tästälähin on Suomi osa Venäjän Vallasta, ja Venäjän Keisari on


aina samalla Suomen Pääruhtinas. Muutoin ovat Suomella ne lait,
kun sen tullessa Venäjän alle olivat Ruotsin Valtakunnassa
ojennuksena, perustuslakina. Niitä ei saa muutoin muuttaa, kun
yhteisellä Säätyjen suostumisella, joita Keisari kutsuu Herrainpäiville
keskustelemaan Hänen Majesteetiltänsä edesasetetuista asioista.
Muissa kaikissa on Keisarilla korkein niin lakilaativa kun täyttäväki
valta. Se Aleksanderilta Turkuun laitettu Hallitus-Seura
kokoonpantiin, asetustansa myöten, Pääguvernööristä ja 14:ta
jäsenestä, joista puoli on vapasukuisten säätyä, toinen puoli muuta.
Mutta kun Viipurin lääni v. 1811 Keisarilta jällensä yhdistettiin muun
Suomen kanssa, niin tuli mainittu Hallitus- Seura lisätyksi kahdella
sieltä kotoisella jäsenellä. Tähän laitokseen kuuluu myöskin
Prokuraatorin virka, jonka velvollisuus on pitää silmällä, että laki ja
oikeus niin Hallitus-Seurassa kun muissaki paikoissa käytetään. Tämä
samanen Seura sai v. 1816 nimen: Keisarillinen Senaatti Suomelle, ja
muutettiin v. 1819 Helsingforsiin, joka ennen jo oli määrätty Suomen
pääkaupungiksi. Aleksanderi oli myöskin v.1811 laittanut Seuran
Suomen asioille Pietarporissa, jonka työ oli Valtakunnan Sihteerin
kanssa valmistaa Keisarin eteen tuotavat asiat. Samalla tavalla
pantiin Aleksanderin aikana muutki maan hallitukseen kuuluvat virat
ja Seurat oikeaan järjestykseensä. Virkamiesten palkkoja lisättiin, ja
kaikkityyni alkoi saada uuden muodon. Mainittu Keisari kävi
uudellensa Suomessa silloin kun hän v. 1812 kulki Turkuun. Mutta v.
1819 tuli hän kolmannen kerran meidän maahan, kulki Karjalan ja
Savon kautta Pohjanmaalle aina Tornioon asti, josta palasi rantatietä
takasin Pietarporiin. Tällä matkallansa voitti hän isällisellä
lauhkeudella ja alasantavalla käytöksellään kaikkein Suomalaisten
rakkauden. Kun hän 1 p. Joulukuuta v. 1825 kuoli, tuli hänen
veljensä, meidän nykyinen kaikkeinarmollisin Keisarimme Nikolai
1:mäinen, kruunun ottamaan. Heti sen perästä tapahtui muutos
Suomen asiain edestuomisessa Keisarin eteen, sillä tavalla, että se
entinen Seura tuli herkeämään ja muutettiin Kansliaksi Valtakunnan
Sihteerille. Läänit tulivat nyt v. 1831 uudestaan järjestytetyksi. Hovi-
Oikeus Viipuriin on laitettu v. 1839. Muuten on uusi kaupunki tullut
Jyväskylässä ja Mikkelissä perustetuksi, ja Ahvenanmaalla rakennettu
uutta linnaa y.m. Kaikkein meidän maassa seurattavain lakein ja
asetusten järjestämisen päälle tekee myöskin, erittäin sitä vasten
valittu, Seura paraaltaan työtä.

Kirkollinen järjestys on, vähemmin kun kansallinen, tullut Venäjän


alla muuttumaan. Kun Viipurin lääni yhdistettiin Suomen kanssa, niin
tuli se Porvon hiippakuntaan liitetyksi. Suomen Korkiopisto tuli jo
alusta alkain monta etua saamaan. Vuonna 1811 annettiin sille lisää
palkoissa opettajille ja varoja uusiksi laitoksiksi. Aleksanderi käski v.
1817 pitää riemujuhlaa Lutheruksen Opinparantamisen muistoksi, ja
silloin tehtiin Turun hiippakunta Päähiippakunnaksi. Silloin tuli myös
sen pispa, joka erousi Siakanslerin virasta, Pääpispaksi ynnä
pappissäädyn korkeimmaksi pääksi Suomessa. Kun Turku v. 1827
paloi ja siinä kaikki Akademian tavarat hävenivät, muutettiin
Korkiopisto Helsingforsiin ja sai siellä uudet säännöt sekä uuden
järjestyksen. Turkuun laitettiin Gymnasiumi. Koululaitosten
parantaminen meidän maassa on myöskin ollut tuumassa, ehk'ei se
ole vielä saanut valmiiksi.
Hallituksen toimen kautta on maamme sisämäinen tila karttunut
koskenperkkausten, vuorityön, maanpruukin, käsityön j.n.e.
edesauttamisella. Muuten on kansassa itsessään mukaunut Seuroja
niin Kristillisyyden kun myöski yhteisen Tiedon ja Suomen
Kirjallisuuden sekä Luonnontuntemisen edesauttamiseksi, jotka
ulkonaisesti osottanevat, että uusi Uskon ja Tiedon aika on
lähenemässä.

Lopuksi ei muuta, kun rauhaa, menestystä Suomellemme, ja että


sen tie aina olisi totuuteen päin, eikä huikentelevaisuuteen!

Muist. Nimilehti, esipuhet ja parannukset tulevat tälle Historialle


1840-vuoden Mehiläisessä annettavaksi.
VIITESELITYKSET:

[1] Ensimmäisen kirkon maassamme olleen Nousisissa, viittaa


edellämainittu (siv. 31) legendan kertoma, ja muutk syyt.

[2] Palestinassa, jossa tähän aikaan Ristisotia käytiin, oli


ritariseuroja sairasten ja kurjain hoidoksi ilmautunut, ja niiden seassa
Saksan ritariseura v. 1190. Tämä kutsuttiin sittemmin Preussian
maata Kristinuskohon käännyttämään. Vuonna 12227 yhdistyi se
Viron käännyttämiseksi laitetun Kalpaveljein ritariseuran kanssa, ja
tulee välistä meidän historiata koskemaan.

[3] Alkutiedot nimittävät tässä Karjalaisten siaan Kuureja. Mutta


niinkuin edellisessäki jo on viitattu, niin sekoitetaan nämät
kansanimet usein.

[4] Se jäi Venäjän alle, varjelemaan meille Muinaisaikain runoissa


ja tavoissa säilytetyt muistomerkit, jotka koko Karjalan nyt Ruotsin
alle tultua, olisivat nähtävästi ijäksi päiväksi unhotuksiin joutuneet.

[5] Raha merkitsi vanhassa Suomenkielessä, kuten vieläki Lapissa,


samaa kun eläväin nahkaa; ja koska nahkoja rahan asemesta
pidettiin, niin sai se sana siitä sittä nykyisen merkityksensä.
[6] Näiden sotain kertomisessa tulemma niinkuin usein mutoinki,
paraasta päästä seuraamaan, mitä Provasti Hippingin kirjassa: Neva
och Nyenskans intill S:t Petterburgs anläggning, löytyy Venäjän
vanhain aikakirjain tiedoista (jotka ovat paljo tarkemmat ja
päälleluotettavammat, kun ruotsinpuoleiset tiedot,) näihin asioihin
koskevaista kirjoitettuna.

[7] Paavit asuivat tavallisesti Roomissa. Mutta kun Franskan


Kuningas Philippi Kaunoinen oli laittanut miehen omasta kansastansa
Paaviksi, niin muutti se v. 1309 asuntonsa Avignoniin, Franskan
maalla. Siellä asuivat Paavit vuoteen 1378, jolloin Roomissa valittiin
toinen, omituinen Paavi. Nyt oli siis Kristikunnalla kaksi Paavia, jotka
pannaamisella kokivat toisiaan sortaa. Viimmein löytyi niitä kolmekki
yhtaikaa, siksikun Kostnitsin Kirkonkokous (v. 1414) teki lopun näille
sekannuksille.

[8] Sen sanoo, ehk'ei juuri samoilla sanoilla, muutama


todistuksista (katso: Porthan, Chron. Episc. Finl. pag. 374. not. 332).
Sitä myöten olisi Pohjanmaa saanut Kristinuskon noin pispa
Katilluksen aikoina.

[9] Gotlannissa eli Erikki 10 vuotta ja muutti sittä isänmaahansa


Pommeriin, jossa kuoli v. 1459.

[10] Tämän aikakirjan on Kanslii-Raati ja muinan Professori


Turussa, kiitollisesti muistettava Henr. Gabr. Porthaani, antanut
präntistä uloskäydä, itseltänsä kootuilla lisäyksillä jokaisen siinä
mainitun pispan aikaan ja elämäkertaan, nimellä: Pauli Juusten
Chronicon Episcoporum Finlandensium, annotationibus & Sylloge
monumentorum illustratum. Siinä kirjassa ovat pian ainoat tiedot
Suomen pispoista koolla, ja siitä olemmeki ottaneet, mitä tähänasti
olemme kertoneet. Mutta tämän perästä on kertomamme lähdet
jokaisen pitemmältä muisteltavan pispan elämäkerrassa, aina
paikallansa ja erittäin tietä annettava.

[11] Mitä tästä pispasta tulemma sanomaan, on otettu Professorin


Joh. Jaak. Tengströmin jutelmasta: De viris in Fennia peritia
literarum Græcarum claris, siv. 9-30.

[12] Katso tästä miehestä Professorin Joh. Jaak. Tengströmin


edellisessä meiltä osotettuun kirjaan, siv. 34-47.

[13] Nimeltä: Linguæ Fennicæ brevis Institutio, joka v. 1649


ensimmäisen Kirjanpränttääjän Pietari Waldin tykönä präntättiin.

14] Katso tästä miehestä pispavainajan Jaak. Tengströmin: Minne


öfver Johannes Elai Terserus; Turussa v. 1795.

[15] Eskillus Petreeus oli muutaman aikaa ollut hänen opettajana.

[16] Pitempiä tietoja saadaan tästä miehestä Professorin Joh.


Jaak. Tengströmin kirjassa: Biskopen i Åbo Stift Johan Gezelii den
äldres Minne; Turussa v. 1825.

[17] Tämäki laitos oli v. 1632 saanut suurelta Gustavi Adolphilta


alkunsa.

[18] Akademian kirjanpräntti oli hyvin rappiossa, ett'ei sillä


saatettu tarpeita täyttää.

[19] Tästä miehestä ja hänen merkillisistä ajoista löytään


opettavaisia tietoja Professorin Joh. Jaak. Tengströmin kirjassa:
Gezelii den yngres Minne; Helsingissä v. 1833.

You might also like