Stay ahead of learning milestones! Enroll in a class over the summer!

G
Topic
First Poster
Last Poster
k a May Highlights and 2025 AoPS Online Class Information
jlacosta   0
May 1, 2025
May is an exciting month! National MATHCOUNTS is the second week of May in Washington D.C. and our Founder, Richard Rusczyk will be presenting a seminar, Preparing Strong Math Students for College and Careers, on May 11th.

Are you interested in working towards MATHCOUNTS and don’t know where to start? We have you covered! If you have taken Prealgebra, then you are ready for MATHCOUNTS/AMC 8 Basics. Already aiming for State or National MATHCOUNTS and harder AMC 8 problems? Then our MATHCOUNTS/AMC 8 Advanced course is for you.

Summer camps are starting next month at the Virtual Campus in math and language arts that are 2 - to 4 - weeks in duration. Spaces are still available - don’t miss your chance to have an enriching summer experience. There are middle and high school competition math camps as well as Math Beasts camps that review key topics coupled with fun explorations covering areas such as graph theory (Math Beasts Camp 6), cryptography (Math Beasts Camp 7-8), and topology (Math Beasts Camp 8-9)!

Be sure to mark your calendars for the following upcoming events:
[list][*]May 9th, 4:30pm PT/7:30pm ET, Casework 2: Overwhelming Evidence — A Text Adventure, a game where participants will work together to navigate the map, solve puzzles, and win! All are welcome.
[*]May 19th, 4:30pm PT/7:30pm ET, What's Next After Beast Academy?, designed for students finishing Beast Academy and ready for Prealgebra 1.
[*]May 20th, 4:00pm PT/7:00pm ET, Mathcamp 2025 Qualifying Quiz Part 1 Math Jam, Problems 1 to 4, join the Canada/USA Mathcamp staff for this exciting Math Jam, where they discuss solutions to Problems 1 to 4 of the 2025 Mathcamp Qualifying Quiz!
[*]May 21st, 4:00pm PT/7:00pm ET, Mathcamp 2025 Qualifying Quiz Part 2 Math Jam, Problems 5 and 6, Canada/USA Mathcamp staff will discuss solutions to Problems 5 and 6 of the 2025 Mathcamp Qualifying Quiz![/list]
Our full course list for upcoming classes is below:
All classes run 7:30pm-8:45pm ET/4:30pm - 5:45pm PT unless otherwise noted.

Introductory: Grades 5-10

Prealgebra 1 Self-Paced

Prealgebra 1
Tuesday, May 13 - Aug 26
Thursday, May 29 - Sep 11
Sunday, Jun 15 - Oct 12
Monday, Jun 30 - Oct 20
Wednesday, Jul 16 - Oct 29

Prealgebra 2 Self-Paced

Prealgebra 2
Wednesday, May 7 - Aug 20
Monday, Jun 2 - Sep 22
Sunday, Jun 29 - Oct 26
Friday, Jul 25 - Nov 21

Introduction to Algebra A Self-Paced

Introduction to Algebra A
Sunday, May 11 - Sep 14 (1:00 - 2:30 pm ET/10:00 - 11:30 am PT)
Wednesday, May 14 - Aug 27
Friday, May 30 - Sep 26
Monday, Jun 2 - Sep 22
Sunday, Jun 15 - Oct 12
Thursday, Jun 26 - Oct 9
Tuesday, Jul 15 - Oct 28

Introduction to Counting & Probability Self-Paced

Introduction to Counting & Probability
Thursday, May 15 - Jul 31
Sunday, Jun 1 - Aug 24
Thursday, Jun 12 - Aug 28
Wednesday, Jul 9 - Sep 24
Sunday, Jul 27 - Oct 19

Introduction to Number Theory
Friday, May 9 - Aug 1
Wednesday, May 21 - Aug 6
Monday, Jun 9 - Aug 25
Sunday, Jun 15 - Sep 14
Tuesday, Jul 15 - Sep 30

Introduction to Algebra B Self-Paced

Introduction to Algebra B
Tuesday, May 6 - Aug 19
Wednesday, Jun 4 - Sep 17
Sunday, Jun 22 - Oct 19
Friday, Jul 18 - Nov 14

Introduction to Geometry
Sunday, May 11 - Nov 9
Tuesday, May 20 - Oct 28
Monday, Jun 16 - Dec 8
Friday, Jun 20 - Jan 9
Sunday, Jun 29 - Jan 11
Monday, Jul 14 - Jan 19

Paradoxes and Infinity
Mon, Tue, Wed, & Thurs, Jul 14 - Jul 16 (meets every day of the week!)

Intermediate: Grades 8-12

Intermediate Algebra
Sunday, Jun 1 - Nov 23
Tuesday, Jun 10 - Nov 18
Wednesday, Jun 25 - Dec 10
Sunday, Jul 13 - Jan 18
Thursday, Jul 24 - Jan 22

Intermediate Counting & Probability
Wednesday, May 21 - Sep 17
Sunday, Jun 22 - Nov 2

Intermediate Number Theory
Sunday, Jun 1 - Aug 24
Wednesday, Jun 18 - Sep 3

Precalculus
Friday, May 16 - Oct 24
Sunday, Jun 1 - Nov 9
Monday, Jun 30 - Dec 8

Advanced: Grades 9-12

Olympiad Geometry
Tuesday, Jun 10 - Aug 26

Calculus
Tuesday, May 27 - Nov 11
Wednesday, Jun 25 - Dec 17

Group Theory
Thursday, Jun 12 - Sep 11

Contest Preparation: Grades 6-12

MATHCOUNTS/AMC 8 Basics
Friday, May 23 - Aug 15
Monday, Jun 2 - Aug 18
Thursday, Jun 12 - Aug 28
Sunday, Jun 22 - Sep 21
Tues & Thurs, Jul 8 - Aug 14 (meets twice a week!)

MATHCOUNTS/AMC 8 Advanced
Sunday, May 11 - Aug 10
Tuesday, May 27 - Aug 12
Wednesday, Jun 11 - Aug 27
Sunday, Jun 22 - Sep 21
Tues & Thurs, Jul 8 - Aug 14 (meets twice a week!)

AMC 10 Problem Series
Friday, May 9 - Aug 1
Sunday, Jun 1 - Aug 24
Thursday, Jun 12 - Aug 28
Tuesday, Jun 17 - Sep 2
Sunday, Jun 22 - Sep 21 (1:00 - 2:30 pm ET/10:00 - 11:30 am PT)
Monday, Jun 23 - Sep 15
Tues & Thurs, Jul 8 - Aug 14 (meets twice a week!)

AMC 10 Final Fives
Sunday, May 11 - Jun 8
Tuesday, May 27 - Jun 17
Monday, Jun 30 - Jul 21

AMC 12 Problem Series
Tuesday, May 27 - Aug 12
Thursday, Jun 12 - Aug 28
Sunday, Jun 22 - Sep 21
Wednesday, Aug 6 - Oct 22

AMC 12 Final Fives
Sunday, May 18 - Jun 15

AIME Problem Series A
Thursday, May 22 - Jul 31

AIME Problem Series B
Sunday, Jun 22 - Sep 21

F=ma Problem Series
Wednesday, Jun 11 - Aug 27

WOOT Programs
Visit the pages linked for full schedule details for each of these programs!


MathWOOT Level 1
MathWOOT Level 2
ChemWOOT
CodeWOOT
PhysicsWOOT

Programming

Introduction to Programming with Python
Thursday, May 22 - Aug 7
Sunday, Jun 15 - Sep 14 (1:00 - 2:30 pm ET/10:00 - 11:30 am PT)
Tuesday, Jun 17 - Sep 2
Monday, Jun 30 - Sep 22

Intermediate Programming with Python
Sunday, Jun 1 - Aug 24
Monday, Jun 30 - Sep 22

USACO Bronze Problem Series
Tuesday, May 13 - Jul 29
Sunday, Jun 22 - Sep 1

Physics

Introduction to Physics
Wednesday, May 21 - Aug 6
Sunday, Jun 15 - Sep 14
Monday, Jun 23 - Sep 15

Physics 1: Mechanics
Thursday, May 22 - Oct 30
Monday, Jun 23 - Dec 15

Relativity
Mon, Tue, Wed & Thurs, Jun 23 - Jun 26 (meets every day of the week!)
0 replies
jlacosta
May 1, 2025
0 replies
k i Adding contests to the Contest Collections
dcouchman   1
N Apr 5, 2023 by v_Enhance
Want to help AoPS remain a valuable Olympiad resource? Help us add contests to AoPS's Contest Collections.

Find instructions and a list of contests to add here: https://artofproblemsolving.com/community/c40244h1064480_contests_to_add
1 reply
dcouchman
Sep 9, 2019
v_Enhance
Apr 5, 2023
k i Zero tolerance
ZetaX   49
N May 4, 2019 by NoDealsHere
Source: Use your common sense! (enough is enough)
Some users don't want to learn, some other simply ignore advises.
But please follow the following guideline:


To make it short: ALWAYS USE YOUR COMMON SENSE IF POSTING!
If you don't have common sense, don't post.


More specifically:

For new threads:


a) Good, meaningful title:
The title has to say what the problem is about in best way possible.
If that title occured already, it's definitely bad. And contest names aren't good either.
That's in fact a requirement for being able to search old problems.

Examples:
Bad titles:
- "Hard"/"Medium"/"Easy" (if you find it so cool how hard/easy it is, tell it in the post and use a title that tells us the problem)
- "Number Theory" (hey guy, guess why this forum's named that way¿ and is it the only such problem on earth¿)
- "Fibonacci" (there are millions of Fibonacci problems out there, all posted and named the same...)
- "Chinese TST 2003" (does this say anything about the problem¿)
Good titles:
- "On divisors of a³+2b³+4c³-6abc"
- "Number of solutions to x²+y²=6z²"
- "Fibonacci numbers are never squares"


b) Use search function:
Before posting a "new" problem spend at least two, better five, minutes to look if this problem was posted before. If it was, don't repost it. If you have anything important to say on topic, post it in one of the older threads.
If the thread is locked cause of this, use search function.

Update (by Amir Hossein). The best way to search for two keywords in AoPS is to input
[code]+"first keyword" +"second keyword"[/code]
so that any post containing both strings "first word" and "second form".


c) Good problem statement:
Some recent really bad post was:
[quote]$lim_{n\to 1}^{+\infty}\frac{1}{n}-lnn$[/quote]
It contains no question and no answer.
If you do this, too, you are on the best way to get your thread deleted. Write everything clearly, define where your variables come from (and define the "natural" numbers if used). Additionally read your post at least twice before submitting. After you sent it, read it again and use the Edit-Button if necessary to correct errors.


For answers to already existing threads:


d) Of any interest and with content:
Don't post things that are more trivial than completely obvious. For example, if the question is to solve $x^{3}+y^{3}=z^{3}$, do not answer with "$x=y=z=0$ is a solution" only. Either you post any kind of proof or at least something unexpected (like "$x=1337, y=481, z=42$ is the smallest solution). Someone that does not see that $x=y=z=0$ is a solution of the above without your post is completely wrong here, this is an IMO-level forum.
Similar, posting "I have solved this problem" but not posting anything else is not welcome; it even looks that you just want to show off what a genius you are.

e) Well written and checked answers:
Like c) for new threads, check your solutions at least twice for mistakes. And after sending, read it again and use the Edit-Button if necessary to correct errors.



To repeat it: ALWAYS USE YOUR COMMON SENSE IF POSTING!


Everything definitely out of range of common sense will be locked or deleted (exept for new users having less than about 42 posts, they are newbies and need/get some time to learn).

The above rules will be applied from next monday (5. march of 2007).
Feel free to discuss on this here.
49 replies
ZetaX
Feb 27, 2007
NoDealsHere
May 4, 2019
all functions satisfying f(x+yf(x))+y = xy + f(x+y)
falantrng   34
N 20 minutes ago by LenaEnjoyer
Source: Balkan MO 2025 P3
Find all functions $f\colon \mathbb{R} \rightarrow \mathbb{R}$ such that for all $x,y \in \mathbb{R}$,
\[f(x+yf(x))+y = xy + f(x+y).\]
Proposed by Giannis Galamatis, Greece
34 replies
falantrng
Apr 27, 2025
LenaEnjoyer
20 minutes ago
Miklos Schweitzer 1971_7
ehsan2004   1
N 40 minutes ago by pi_quadrat_sechstel
Let $ n \geq 2$ be an integer, let $ S$ be a set of $ n$ elements, and let $ A_i , \; 1\leq i \leq m$, be distinct subsets of $ S$ of size at least $ 2$ such that \[ A_i \cap A_j \not= \emptyset, A_i \cap A_k \not= \emptyset, A_j \cap A_k \not= \emptyset, \;\textrm{imply}\ \;A_i \cap A_j \cap A_k \not= \emptyset \ .\] Show that $ m \leq 2^{n-1}-1$.

P. Erdos
1 reply
ehsan2004
Oct 29, 2008
pi_quadrat_sechstel
40 minutes ago
Functional equation with a twist (it's number theory)
Davdav1232   0
an hour ago
Source: Israel TST 8 2025 p2
Prove that for all primes \( p \) such that \( p \equiv 3 \pmod{4} \) or \( p \equiv 5 \pmod{8} \), there exist integers
\[
1 \leq a_1 < a_2 < \cdots < a_{(p-1)/2} < p
\]such that
\[
\prod_{\substack{1 \leq i < j \leq (p-1)/2}} (a_i + a_j)^2 \equiv 1 \pmod{p}.
\]
0 replies
Davdav1232
an hour ago
0 replies
Grid combi with T-tetrominos
Davdav1232   0
an hour ago
Source: Israel TST 8 2025 p1
Let \( f(N) \) denote the maximum number of \( T \)-tetrominoes that can be placed on an \( N \times N \) board such that each \( T \)-tetromino covers at least one cell that is not covered by any other \( T \)-tetromino.

Find the smallest real number \( c \) such that
\[
f(N) \leq cN^2
\]for all positive integers \( N \).
0 replies
Davdav1232
an hour ago
0 replies
forced vertices in graphs
Davdav1232   0
an hour ago
Source: Israel TST 7 2025 p2
Let \( G \) be a graph colored using \( k \) colors. We say that a vertex is forced if it has neighbors in all the other \( k - 1 \) colors.

Prove that for any \( 2024 \)-regular graph \( G \), there exists a coloring using \( 2025 \) colors such that at least \( 1013 \) of the colors have a forced vertex of that color.

Note: The graph coloring must be valid, this means no \( 2 \) vertices of the same color may be adjacent.
0 replies
Davdav1232
an hour ago
0 replies
Can this sequence be bounded?
darij grinberg   70
N an hour ago by ezpotd
Source: German pre-TST 2005, problem 4, ISL 2004, algebra problem 2
Let $a_0$, $a_1$, $a_2$, ... be an infinite sequence of real numbers satisfying the equation $a_n=\left|a_{n+1}-a_{n+2}\right|$ for all $n\geq 0$, where $a_0$ and $a_1$ are two different positive reals.

Can this sequence $a_0$, $a_1$, $a_2$, ... be bounded?

Proposed by Mihai Bălună, Romania
70 replies
1 viewing
darij grinberg
Jan 19, 2005
ezpotd
an hour ago
weird conditions in geo
Davdav1232   0
an hour ago
Source: Israel TST 7 2025 p1
Let \( \triangle ABC \) be an isosceles triangle with \( AB = AC \). Let \( D \) be a point on \( AC \). Let \( L \) be a point inside the triangle such that \( \angle CLD = 90^\circ \) and
\[
CL \cdot BD = BL \cdot CD.
\]Prove that the circumcenter of triangle \( \triangle BDL \) lies on line \( AB \).
0 replies
Davdav1232
an hour ago
0 replies
find angle
TBazar   4
N an hour ago by vanstraelen
Given $ABC$ triangle with $AC>BC$. We take $M$, $N$ point on AC, AB respectively such that $AM=BC$, $CM=BN$. $BM$, $AN$ lines intersect at point $K$. If $2\angle AKM=\angle ACB$, find $\angle ACB$
4 replies
TBazar
Today at 6:57 AM
vanstraelen
an hour ago
Polys with int coefficients
adihaya   4
N an hour ago by sangsidhya
Source: 2012 INMO (India National Olympiad), Problem #3
Define a sequence $<f_0 (x), f_1 (x), f_2 (x), \dots>$ of functions by $$f_0 (x) = 1$$$$f_1(x)=x$$$$(f_n(x))^2 - 1 = f_{n+1}(x) f_{n-1}(x)$$for $n \ge 1$. Prove that each $f_n (x)$ is a polynomial with integer coefficients.
4 replies
adihaya
Mar 30, 2016
sangsidhya
an hour ago
Italian WinterCamps test07 Problem4
mattilgale   89
N 2 hours ago by cj13609517288
Source: ISL 2006, G3, VAIMO 2007/5
Let $ ABCDE$ be a convex pentagon such that
\[ \angle BAC = \angle CAD = \angle DAE\qquad \text{and}\qquad \angle ABC = \angle ACD = \angle ADE.
\]The diagonals $BD$ and $CE$ meet at $P$. Prove that the line $AP$ bisects the side $CD$.

Proposed by Zuming Feng, USA
89 replies
mattilgale
Jan 29, 2007
cj13609517288
2 hours ago
Simple triangle geometry [a fixed point]
darij grinberg   49
N 2 hours ago by cj13609517288
Source: German TST 2004, IMO ShortList 2003, geometry problem 2
Three distinct points $A$, $B$, and $C$ are fixed on a line in this order. Let $\Gamma$ be a circle passing through $A$ and $C$ whose center does not lie on the line $AC$. Denote by $P$ the intersection of the tangents to $\Gamma$ at $A$ and $C$. Suppose $\Gamma$ meets the segment $PB$ at $Q$. Prove that the intersection of the bisector of $\angle AQC$ and the line $AC$ does not depend on the choice of $\Gamma$.
49 replies
darij grinberg
May 18, 2004
cj13609517288
2 hours ago
Kosovo MO 2010 Problem 5
Com10atorics   19
N 2 hours ago by CM1910
Source: Kosovo MO 2010 Problem 5
Let $x,y$ be positive real numbers such that $x+y=1$. Prove that
$\left(1+\frac {1}{x}\right)\left(1+\frac {1}{y}\right)\geq 9$.
19 replies
Com10atorics
Jun 7, 2021
CM1910
2 hours ago
Hard combi
EeEApO   1
N 2 hours ago by EeEApO
In a quiz competition, there are a total of $100 $questions, each with $4$ answer choices. A participant who answers all questions correctly will receive a gift. To ensure that at least one member of my family answers all questions correctly, how many family members need to take the quiz?

Now, suppose my spouse and I move into a new home. Every year, we have twins. Starting at the age of $16$, each of our twin children also begins to have twins every year. If this pattern continues, how many years will it take for my family to grow large enough to have the required number of members to guarantee winning the quiz gift?
1 reply
EeEApO
3 hours ago
EeEApO
2 hours ago
Problem on symmetric polynomial
ayan_mathematics_king   5
N 2 hours ago by bjump
If $a^3+b^3+c^3=(a+b+c)^3$, prove that $a^5+b^5+c^5=(a+b+c)^5$ where $a,b,c \in \mathbb{R}$
5 replies
ayan_mathematics_king
Jul 28, 2019
bjump
2 hours ago
too many equality cases
Scilyse   18
N May 2, 2025 by mathfun07
Source: 2023 ISL C6
Let $N$ be a positive integer, and consider an $N \times N$ grid. A right-down path is a sequence of grid cells such that each cell is either one cell to the right of or one cell below the previous cell in the sequence. A right-up path is a sequence of grid cells such that each cell is either one cell to the right of or one cell above the previous cell in the sequence.

Prove that the cells of the $N \times N$ grid cannot be partitioned into less than $N$ right-down or right-up paths. For example, the following partition of the $5 \times 5$ grid uses $5$ paths.
IMAGE
Proposed by Zixiang Zhou, Canada
18 replies
Scilyse
Jul 17, 2024
mathfun07
May 2, 2025
too many equality cases
G H J
G H BBookmark kLocked kLocked NReply
Source: 2023 ISL C6
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
Scilyse
387 posts
#1 • 4 Y
Y by OronSH, Therealway, CatinoBarbaraCombinatoric, ohiorizzler1434
Let $N$ be a positive integer, and consider an $N \times N$ grid. A right-down path is a sequence of grid cells such that each cell is either one cell to the right of or one cell below the previous cell in the sequence. A right-up path is a sequence of grid cells such that each cell is either one cell to the right of or one cell above the previous cell in the sequence.

Prove that the cells of the $N \times N$ grid cannot be partitioned into less than $N$ right-down or right-up paths. For example, the following partition of the $5 \times 5$ grid uses $5$ paths.
[asy]
size(4cm);
draw((5,-1)--(0,-1)--(0,-2)--(5,-2)--(5,-3)--(0,-3)--(0,-4)--(5,-4),gray+linewidth(0.5)+miterjoin);
draw((1,-5)--(1,0)--(2,0)--(2,-5)--(3,-5)--(3,0)--(4,0)--(4,-5),gray+linewidth(0.5)+miterjoin);
draw((0,0)--(5,0)--(5,-5)--(0,-5)--cycle,black+linewidth(2.5)+miterjoin);
draw((0,-1)--(3,-1)--(3,-2)--(1,-2)--(1,-4)--(4,-4)--(4,-3)--(2,-3)--(2,-2),black+linewidth(2.5)+miterjoin);
draw((3,0)--(3,-1),black+linewidth(2.5)+miterjoin);
draw((1,-4)--(1,-5),black+linewidth(2.5)+miterjoin);
draw((4,-3)--(4,-1)--(5,-1),black+linewidth(2.5)+miterjoin);
[/asy]
Proposed by Zixiang Zhou, Canada
This post has been edited 8 times. Last edited by Scilyse, Jan 23, 2025, 12:41 PM
Reason: add "proposed by"
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
planarity
1 post
#2 • 26 Y
Y by OronSH, math90, ehuseyinyigit, peace09, YaoAOPS, Jalil_Huseynov, InternetPerson10, CyclicISLscelesTrapezoid, awesomeguy856, L567, carefully, khina, Seicchi28, ihatemath123, IAmTheHazard, PEKKA, Supercali, GeoKing, MathGuy1729, lethan3, EpicBird08, allin27x, SHZhang, Sedro, CatinoBarbaraCombinatoric, MonoVictor
This problem is proposed by me (Zixiang Zhou, Canada)! My original solution writeup is below:

Define a good parallelogram to be a parallelogram composed of two isosceles right-angled triangles glued together:
[asy]
usepackage("tikz");
label("
\begin{tikzpicture}
\fill[purple] (0,0)--(0,1)--(1,2)--(1,1)--cycle;
\fill[purple] (2,0)--(3,1)--(4,1)--(3,0)--cycle;
\fill[purple] (5,1)--(5,2)--(6,1)--(6,0)--cycle;
\fill[purple] (7,1)--(8,1)--(9,0)--(8,0)--cycle;
\end{tikzpicture}
");
[/asy]
Consider the problem of packing the maximum number of good parallelograms into an $N \times N$ grid. It suffices to prove that we must leave an area of at least $N$ empty, as given any partition into $k$ rightdown or rightup paths, we can find a corresponding packing of good parallelograms leaving an area of $k$ empty:
[asy]
usepackage("tikz");
label("
\begin{tikzpicture}
\fill[yellow] (0,0) rectangle (1,1);
\fill[yellow] (0,1) rectangle (1,2);
\fill[yellow] (0,2) rectangle (1,3);
\fill[yellow] (0,3) rectangle (1,4);
\fill[red] (0,4) rectangle (1,5);
\fill[orange] (1,0) rectangle (2,1);
\fill[green] (1,1) rectangle (2,2);
\fill[green] (1,2) rectangle (2,3);
\fill[yellow] (1,3) rectangle (2,4);
\fill[red] (1,4) rectangle (2,5);
\fill[orange] (2,0) rectangle (3,1);
\fill[green] (2,1) rectangle (3,2);
\fill[blue] (2,2) rectangle (3,3);
\fill[yellow] (2,3) rectangle (3,4);
\fill[red] (2,4) rectangle (3,5);
\fill[orange] (3,0) rectangle (4,1);
\fill[green] (3,1) rectangle (4,2);
\fill[blue] (3,2) rectangle (4,3);
\fill[blue] (3,3) rectangle (4,4);
\fill[blue] (3,4) rectangle (4,5);
\fill[orange] (4,0) rectangle (5,1);
\fill[orange] (4,1) rectangle (5,2);
\fill[orange] (4,2) rectangle (5,3);
\fill[orange] (4,3) rectangle (5,4);
\fill[blue] (4,4) rectangle (5,5);
\draw (0,0) grid (5,5);
\end{tikzpicture}
");
label("
\begin{tikzpicture}
\filldraw[color=black,fill=yellow,thick] (1,0)--(0,1)--(0,2)--(1,1)--cycle;
\filldraw[color=black,fill=yellow,thick] (1,1)--(0,2)--(0,3)--(1,2)--cycle;
\filldraw[color=black,fill=yellow,thick] (1,2)--(0,3)--(0,4)--(1,3)--cycle;
\filldraw[color=black,fill=yellow,thick] (0,4)--(1,4)--(2,3)--(1,3)--cycle;
\filldraw[color=black,fill=yellow,thick] (1,4)--(2,4)--(3,3)--(2,3)--cycle;
\filldraw[color=black,fill=red,thick] (0,5)--(1,5)--(2,4)--(1,4)--cycle;
\filldraw[color=black,fill=red,thick] (1,5)--(2,5)--(3,4)--(2,4)--cycle;
\filldraw[color=black,fill=blue,thick] (2,3)--(3,3)--(4,2)--(3,2)--cycle;
\filldraw[color=black,fill=blue,thick] (3,3)--(3,4)--(4,3)--(4,2)--cycle;
\filldraw[color=black,fill=blue,thick] (3,4)--(3,5)--(4,4)--(4,3)--cycle;
\filldraw[color=black,fill=blue,thick] (3,5)--(4,5)--(5,4)--(4,4)--cycle;
\filldraw[color=black,fill=green,thick] (2,3)--(1,2)--(1,1)--(2,2)--cycle;
\filldraw[color=black,fill=green,thick] (1,1)--(2,2)--(3,2)--(2,1)--cycle;
\filldraw[color=black,fill=green,thick] (2,1)--(3,2)--(4,2)--(3,1)--cycle;
\filldraw[color=black,fill=orange,thick] (1,1)--(2,0)--(3,0)--(2,1)--cycle;
\filldraw[color=black,fill=orange,thick] (2,1)--(3,0)--(4,0)--(3,1)--cycle;
\filldraw[color=black,fill=orange,thick] (3,1)--(4,0)--(5,0)--(4,1)--cycle;
\filldraw[color=black,fill=orange,thick] (4,1)--(4,2)--(5,1)--(5,0)--cycle;
\filldraw[color=black,fill=orange,thick] (4,2)--(4,3)--(5,2)--(5,1)--cycle;
\filldraw[color=black,fill=orange,thick] (4,3)--(4,4)--(5,3)--(5,2)--cycle;
\draw (0,0) rectangle (5,5);
\end{tikzpicture}
",(5,0),E);
[/asy]
To show that a packing of good parallelograms must leave an area of $N$ empty, note that it is possible to draw a $\backslash$ or a $/$ in each cell such that it does not intersect any of the good parallelograms. Now, view these segments as mirrors, and consider a laser fired from each of the $4N$ boundary edges, bouncing along these mirrors until it exits at some other edge. It is well known that this forms a bijection between the boundary edges and these laser beams altogether visit every triangular region at most once. Consider such a pair of boundary edges. There are several cases:
  1. If this is a pair of a vertical and a horizontal edge, then there must be at least one empty triangle within this beam, so there is an empty area of at least $0.5$ corresponding to this pair.
  2. If this is a pair of boundary edges from the same side of the $N \times N$ square, then there must be at least two empty triangles within this beam, so there is an empty area of at least $1$ corresponding to this pair.
  3. If this is a pair of boundary edges from opposite sides of the $N \times N$ square, then there might be no such empty area corresponding to this pair.

Note that the beams do not intersect, so if case (2) occurs, then all such pairs are from vertical edges or all such pairs are from horizontal edges. WLOG let case (2) occur $t$ times and only for vertical edges. Then out of the remaining boundary edges, there are $2N$ horizontal boundary edges and $2N-2t$ vertical boundary edges. It follows that there must be at least $t$ pairs connecting a horizontal boundary edge to another horizontal boundary edge on the same side of the $N \times N$ square. Thus, the empty area is at least
\[
1(t)+0.5(2N-2t) = N
\]as required.
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
carefully
240 posts
#4
Y by
This problem is so beautiful it deserves a place in the IMO. So sad it wasn't selected as P3 last year.
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
MarkBcc168
1595 posts
#5 • 4 Y
Y by OronSH, ehuseyinyigit, GeoKing, D.C.
Solution with CANBANKAN.

WLOG the side lengths of a square cell is 1.

Step 1. Converting into covering by parallelogram.

For each right-down path, cover the path by parallelograms with sides of length $\sqrt{2}$ having slope 1. For each right-up path, cover the path by parallelograms with sides of length $\sqrt{2}$ having slope $-1$. Note that in each (nontrivial) path we miss exactly area 1. Thus, if we tile by such parallelograms and show that area of at least $N$ is uncovered, we are done.
[asy]
size(0, 3.5cm);
usepackage("amsmath");
int n=6;
draw(box((0,0), (n,n)), linewidth(1));
for(int i=1; i<n; ++i){
	draw((i,0) -- (i,n), mediumgray);
	draw((0,i) -- (n,i), mediumgray);
}
pen p = linewidth(1);
draw((1,5) -- (1,1) -- (6,1), p);
draw((2,1) -- (2,4) -- (4,4) -- (4,6), p);
draw((0,5) -- (4,5), p);
draw((2,2) -- (5,2) -- (5,5) -- (6,5), p);
draw((3,4) -- (3,3) -- (5,3), p);

picture pic;
pen f = mediumgray;
fill(pic,(0,4)--(0,5)--(1,5)--cycle,f);
fill(pic,(5,0)--(6,0)--(6,1)--cycle,f);
fill(pic,(1,1)--(2,1)--(1,2)--cycle,f);
fill(pic,(4,4)--(4,5)--(3,5)--cycle,f);
fill(pic,(0,5)--(0,6)--(1,6)--cycle,f);
fill(pic,(4,5)--(4,6)--(3,5)--cycle,f);
fill(pic,(2,4)--(3,4)--(2,3)--cycle,f);
fill(pic,(4,2)--(5,2)--(5,3)--cycle,f);
fill(pic,(3,3)--(4,3)--(3,4)--cycle,f);
fill(pic,(6,6)--(5,6)--(6,5)--cycle,f);
fill(pic,(2,1)--(3,1)--(2,2)--cycle,f);
fill(pic,(6,4)--(6,5)--(5,5)--cycle,f);

draw(pic,box((0,0), (n,n)), linewidth(1));

pen p = linewidth(1);
draw(pic,(1,5) -- (1,1) -- (6,1), p);
draw(pic,(2,1) -- (2,4) -- (4,4) -- (4,6), p);
draw(pic,(0,5) -- (4,5), p);
draw(pic,(2,2) -- (5,2) -- (5,5) -- (6,5), p);
draw(pic,(3,4) -- (3,3) -- (5,3), p);

void up(real x, real y) {draw(pic,(x,y) -- (x+1,y+1), p);}
void down(real x, real y) {draw(pic,(x+1,y) -- (x,y+1), p);}

up(1,0); up(2,0); up(3,0); up(4,0); up(5,0);
up(0,0); up(0,1); up(0,2); up(0,3); up(0,4);
up(0,5); up(1,5); up(2,5); up(3,5);
down(1,1); down(1,2); down(1,3); down(1,4); down(2,4); down(3,4);
down(2,1); down(3,1); down(4,1); down(5,1); down(5,2); down(5,3); down(5,4);
up(2,3); up(2,2); up(3,2); up(4,2);
down(3,3); down(4,3); down(4,4); down(4,5); down(5,5);

label("$\implies$", (7,3));
add(shift(8,0)*pic);
[/asy]
The remainder of this problem is Iran TST 2013.

Step 2. Solving Iran TST 2013.

We remove the horizontal/vertical line for a moment. Add in diagonals arbitrarily so that each square has a diagonal.
[asy]
size(3.5cm,0);
int n=6;
draw(box((0,0), (n,n)), linewidth(1));
pen p = linewidth(1);

void up(real x, real y) {draw((x,y) -- (x+1,y+1), p);}
void down(real x, real y) {draw((x+1,y) -- (x,y+1), p);}

up(1,0); up(2,0); up(3,0); up(4,0); up(5,0);
up(0,0); up(0,1); up(0,2); up(0,3); up(0,4);
up(0,5); up(1,5); up(2,5); up(3,5);
down(1,1); down(1,2); down(1,3); down(1,4); down(2,4); down(3,4);
down(2,1); down(3,1); down(4,1); down(5,1); down(5,2); down(5,3); down(5,4);
up(2,3); up(2,2); up(3,2); up(4,2);
down(3,3); down(4,3); down(4,4); down(4,5); down(5,5);
[/asy]

There are $2N$ connected regions by Euler's formula. Moreover, each region must enter and exit the grid (there cannot be a dead end). Thus each region uses exactly two boundary edges of the square.

We relate this back to parallelograms by the following.
  • If a region uses one horizontal and one vertical edge at the boundary, then the area is half-integer, so an area of at least $\tfrac 12$ is uncovered.

    To see this, split the region into several $1$-$1$-$\sqrt 2$ triangles and walk through them in order. Each transition switch the orientation of the edge (from horizontal to vertical and vice versa), so one must pass through an odd number of triangles, and so the area must be half-integer.
  • If a region uses two segments on the same side of the border, then at least area $1$ in that region is uncovered.

    To see this, note that if a region is completely covered by parallelograms, then it must keep going up until it reaches opposite side.

These two observations are enough to finish the problem: if there are no laser paths from one side of the border to the opposite side of the border, then each region has at least $\tfrac 12$ uncovered area.

Otherwise, suppose a laser path connects the top of the border to the bottom of the border, then one cannot have a region from left vertical edge to right vertical edge. Thus, every vertical line segment contribute at least $\tfrac 12$ to the uncovered area. There are $2N$ vertical lines, so we are forced to have uncovered area of at least $2N\cdot\tfrac 12 = N$.
This post has been edited 3 times. Last edited by MarkBcc168, Jul 17, 2024, 3:08 PM
Reason: I hate aops displaystyle
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
CANBANKAN
1301 posts
#6 • 2 Y
Y by ehuseyinyigit, jameskuang1112
Here is another solution sketch: Induct on $N$.

Force a path from bottom left square to top right square, possibly splitting other paths. Remove the path, and glue the parts together to form a $(N-1) \times (N-1)$ square. It turns out the other parts that are split gets glued back.
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
MathGuy1729
42 posts
#7 • 3 Y
Y by IAmTheHazard, YaoAOPS, CyclicISLscelesTrapezoid
One more solution sketch
This post has been edited 1 time. Last edited by MathGuy1729, Jul 18, 2024, 10:55 AM
Reason: Clarification
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
zhycongcong
6 posts
#8
Y by
CANBANKAN wrote:
It turns out the other parts that are split gets glued back.
Why?
It does't seem like to be correct in all cases.
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
YaoAOPS
1540 posts
#9
Y by
MathGuy1729 wrote:
One more solution sketch

Questions
This post has been edited 1 time. Last edited by YaoAOPS, Jul 18, 2024, 10:00 AM
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
MathGuy1729
42 posts
#10 • 1 Y
Y by YaoAOPS
YaoAOPS wrote:
What exactly are red cells here?
A red cell is any cell that's not blue (so a path doesn't start there) and the previous square of the path passing through it isn't the cell left to it, so it is reached from above or from below.
Quote:
And are these diagonals taken from the center of cells?
You can look at it that way, doesn't really matter. The important part is that they connect two diagonally adjacent cells.
Quote:
Why is there an "arrow path" from the first column to the last column
Each cell in the first column is blue or red. Now, for every cell in the first column, follow the arrows until possible. This may only end by reaching a blue cell or the last column. However, there are $N$ cells in the first column, at most $N-1$ blue cells, and each blue cell can stop you at most once, so for at least one cell in the first column, you reach the last column.

Hope this was helpful.
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
MathGuy1729
42 posts
#11
Y by
zhycongcong wrote:
CANBANKAN wrote:
It turns out the other parts that are split gets glued back.
Why?
It does't seem like to be correct in all cases.
From what I've heard, if you force the path randomly, then no, they don't get glued back, but there is always a way to force the path so that they do end up getting glued. I don't quite remember how exactly that's done, though.
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
YaoAOPS
1540 posts
#12
Y by
quick sketch of above
This post has been edited 2 times. Last edited by YaoAOPS, Jul 18, 2024, 1:28 PM
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
tobylong
290 posts
#13
Y by
old
Iran TST 2013
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
jk2845
10 posts
#14 • 2 Y
Y by YaoAOPS, math90
I think I have a different solution.
Let there be a partition with $M$ parts. We'll show that $M\geq N$ must hold.
We'll need the following lemma
Lemma: It is possible to enumerate the the paths with numbers from $1$ to $M$ such that in each for every pair of paths, say with numbers $a$ and $b$ ($a>b$), the path $b$ doesn't "lies over" the path $a$. Here "lying over" means, that for any column intersecting both paths the the $a$ path lies over the $b$ path in that column.
proof: It is kind of annoying to explain, so I'll keep it short. the proof goes more or less as follows. It doesn't matter with which numbers we enumerate, be it $1, 2, ..., M$ or some other set of distinct real numbers, so we'll enumerate with real numbers. We start with the observation that path A lies over path B if in at least one column which they both intersect A lies over B (it follows from the property of the paths). Now we finally start enumerating. We start with the left-most column. We enumerate the paths crossing it with some real numbers in the right order. Now we go to the next column. The new paths that cross this column we enumerate with real numbers accordingly. and so on. Because of the property already mentioned this enumeration works. Now convert the real numbers into $1, 2, ..., M$.

Assume $M<N$.
Now we draw the paths in the order $1, 2, ... M$ step by step. We will prove the following. Right after the $i-1$-th step of the procedure, the $i$-th row from below is going to have atleast $n-i+1$ cells which are not yet occupied by paths for $M+1\geq i\geq 1$(the $0$-th step is the beginning). If we use this fact for $i=M$, then there would be at least 1 cell that is not occupied by the paths and we are done, contradiction. Now it remains to prove this fact. For $i=1$ it is obvious. Assume it is proven for $i$. Let $a_1, a_2, ..., a_{n-i+1}$ be the unoccupied cells in the $i$-th row. We now draw in the $i$-th path. Let $b_k$ be the cell right above $a_k$. Then it is not hard to see, be the enumeration criterion, that if the last path contains $b_k$ it must also contain $a_k$ (otherwise look at the path containing $a_k$). Now we are done if only one $b_k$ is in the last path. If there would be two, for example $b_i$ and $b_j$ then $a_i, a_j, b_i, b_j$ would all be contained in the path, the impossibility of which is easily seen. Now we are done.
This post has been edited 1 time. Last edited by jk2845, Jul 20, 2024, 2:29 PM
Reason: minor mistake
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
YaoAOPS
1540 posts
#15 • 1 Y
Y by popop614
Posted an incoherent sketch in post #9. Here's it fully texed out with too many diagrams.

Call a path which would go $3$ of the corners of the board (and thus consists of two directions) an amogus. We will induct down on $N$ by forcing amogii.
Call the orientation of a path whether it goes right-up or right-down.
First, note that if we have the end of a piece $A$ extending into a corner $B$, we can actually the end of the piece and repeatedly move corners as necessary.
[asy]
int W=5; int H=3; int T=7; for (int i=0; i<=W; ++i) { draw( (i,0)--(i,H), rgb("333333")+dashed );
draw( (i+T,0)--(i+T,H), rgb("333333")+dashed );
} for (int i=0; i<=H; ++i) { draw( (0,i)--(W,i), rgb("333333")+dashed ); draw( (0+T,i)--(W+T,i), rgb("333333")+dashed ); }
label("$\mapsto$", (6, 1.5));
pen p1 = blue+white+white; pen p2 = green+white+white; filldraw((0,0)--(0,1)--(2,1)--(2,0)--cycle, p1); filldraw((2,0)--(2,3)--(3,3)--(3,1)--(5,1)--(5,0)--cycle, p2); filldraw((3,1)--(5,1)--(5,2)--(4,2)--(4,3)--(3,3)--cycle, p2);
filldraw((T+0,0)--(T+0,1)--(T+3,1)--(T+3,0)--cycle, p1); filldraw((T+2,1)--(T+2,3)--(T+3,3)--(T+3,2)--(T+4,2)--(T+4,1)--(T+5,1)--(T+5,0)--(T+3,0)--(T+3,1)--cycle, p2); filldraw((T+3,2)--(T+3,3)--(T+5,3)--(T+5,1)--(T+4,1)--(T+4,2)--cycle, p2);
label("$A$", (1.5, 0.5)); label("$B$", (2.5, 0.5)); label("$C$", (3.5, 1.5));
label("$A$", (T+2.5, 0.5)); label("$B$", (T+3.5, 1.5)); label("$C$", (T+4.5, 2.5));
[/asy]
This means that if any path has an end in the bottom row, we can extend this end as much as we want in a certain direction.
If we can cover the entire bottom row with such a path, we can then further extend to get an amogus. This means we can induct on $N$ and finishes.
Else, the best we can do is $2$. Label these two pieces $T_0$ and $L_0$ where $T_0$ goes through the bottom left corner and $L_0$ the bottom right. These two pieces must have opposite orientations, so one of the two most two edges in the path, WLOG let it be $L_0$.
[asy]
int W=8; int H=6; for (int i=0; i<=W; ++i) { draw( (i,0)--(i,H), rgb("333333")+dashed );
} for (int i=0; i<=H; ++i) { draw( (0,i)--(W,i), rgb("333333")+dashed ); }
pen p1 = orange+white+white; pen p2 = blue+white+white; pen p3 = green+white+white; pen p4 = red+white+white;
filldraw((0,0)--(2,0)--(2,3)--(1,3)--(1,1)--(0,1)--cycle, p1); filldraw((2,0)--(2,5)--(3,5)--(3,1)--(8,1)--(8,0)--cycle, p1);
label("$T_0$", (1.5,2.5)); label("$L_0$", (2.5,4.5));  [/asy]
Our next goal is to force $L_0$ to consist of either just a horizontal piece, just a vertical piece, or extend to the top of the board. In the first two cases, we can extend to get an amogus. In the third case, we can swap the order of the two edges in $L_0$ to make it go through two corners (which preserves other paths), and then extend to get an amogus.
The issue we run into when trying to extend the vertical part of $L_0$ is that we hit a path above which we can't immediately cut through. Call this path the bar $B$.
Call a path which goes right-down and has a vertical end below the bar, an cutter. We also consider $1 \times 1$ paths cutters. Call the edge between $B$ and $L_0$, and all horizontal edges of the same height touching $L_0$, the pushzone of the bar.
[asy]
int W=8; int H=6; for (int i=0; i<=W; ++i) { draw( (i,0)--(i,H), rgb("333333")+dashed );
} for (int i=0; i<=H; ++i) { draw( (0,i)--(W,i), rgb("333333")+dashed ); }
pen p1 = orange+white+white; pen p2 = blue+white+white; pen p3 = green+white+white; pen p4 = red+white+white;
filldraw((0,0)--(2,0)--(2,3)--(1,3)--(1,1)--(0,1)--cycle, p1); filldraw((2,0)--(2,5)--(3,5)--(3,1)--(8,1)--(8,0)--cycle, p1);
filldraw((1,5)--(1,6)--(8,6)--(8,4)--(7,4)--(7,5)--cycle, p3); draw((2,5.05)--(7,5.05), red); draw((1,5.05)--(2,5.05), purple);
label("$T_0$", (1.5,2.5)); label("$L_0$", (2.5,4.5)); label("$B$", (1.5, 5.5));  [/asy]
We also allow for some number of strictly vertical paths between $T_0$ and $L_0$, labelled $C_1, \dots, C_k$ from left to right. This serves as a bounded monovariant.

Claim: Given $L_0$, we can get cutters under all of the pushzone right of the edge between $B$ and $L_0$ (the red edges in the above diagram), or win by getting a amogus, potentially getting more vertical paths.
Proof. We induct on the distance between the pushzone and the bottom edge of the board. If the distance is $0$, we can get an amogus and terminate.
Else, starting from $L_0$, we look at the paths containing the cells right of the top cell of $L_0$ one by one. Suppose we get a few cutters $L_1, \dots, L_n$ before hitting a noncutter.
Then consider the first cell which is not in a cutter (if they are all cutters, we are done). First suppose the path $S$ containing it is also right-down.
[asy]
int W=8; int H=6; for (int i=0; i<=W; ++i) { draw( (i,0)--(i,H), rgb("333333")+dashed );  } for (int i=0; i<=H; ++i) { draw( (0,i)--(W,i), rgb("333333")+dashed ); }  pen p1 = orange+white+white; pen p2 = blue+white+white; pen p3 = green+white+white; pen p4 = red+white+white;  filldraw((0,0)--(2,0)--(2,3)--(1,3)--(1,1)--(0,1)--cycle, p1); filldraw((2,0)--(2,5)--(3,5)--(3,1)--(8,1)--(8,0)--cycle, p1);  filldraw((3,1)--(3,5)--(4,5)--(4,2)--(6,2)--(6,1)--cycle, p2); filldraw((4,2)--(4,5)--(5,5)--(5,3)--(6,3)--(6,2)--cycle, p2);
filldraw((1,5)--(1,6)--(8,6)--(8,4)--(7,4)--(7,5)--cycle, p3); draw((2,5.05)--(7,5.05), red); draw((1,5.05)--(2,5.05), purple); filldraw((5,4)--(5,5)--(7,5)--(7,3)--(6,3)--(6,4)--cycle, p4);
label("$T_0$", (1.5,2.5)); label("$L_0$", (2.5,4.5)); label("$L_1$", (3.5,4.5)); label("$L_2$", (4.5,4.5)); label("$S$", (5.5,4.5));
label("$B$", (1.5, 5.5));  [/asy]
Then the idea is that we can extend $S$ and induct down. The pushzone of $S$ is chosen by us so that after getting our cutters, we can induct up and $S$ is now a cutter.
[asy]
int W=8; int H=6; for (int i=0; i<=W; ++i) { draw( (i,0)--(i,H), rgb("333333")+dashed );  } for (int i=0; i<=H; ++i) { draw( (0,i)--(W,i), rgb("333333")+dashed ); }  pen p1 = orange+white+white; pen p2 = blue+white+white; pen p3 = green+white+white; pen p4 = red+white+white;  filldraw((0,0)--(2,0)--(2,3)--(1,3)--(1,1)--(0,1)--cycle, p1); filldraw((2,0)--(2,4)--(3,4)--(3,1)--(8,1)--(8,0)--cycle, p1);  filldraw((3,1)--(3,4)--(4,4)--(4,2)--(6,2)--(6,1)--cycle, p2); filldraw((4,2)--(4,4)--(5,4)--(5,3)--(6,3)--(6,2)--cycle, p2);
filldraw((1,5)--(1,6)--(8,6)--(8,4)--(7,4)--(7,5)--cycle, p3); draw((2,5.05)--(7,5.05), red); draw((1,5.05)--(2,5.05), purple);
filldraw((2,4)--(2,5)--(7,5)--(7,3)--(6,3)--(6,4)--cycle, p4);
label("$T_0$", (1.5,2.5)); label("$L_0$", (2.5,3.5)); label("$L_1$", (3.5,3.5)); label("$L_2$", (4.5,3.5)); label("$S$", (2.5,4.5));
label("$B$", (1.5, 5.5));  [/asy]
Next, suppose $S$ is part of a right-up piece.
[asy]
int W=8; int H=6; for (int i=0; i<=W; ++i) { draw( (i,0)--(i,H), rgb("333333")+dashed );  } for (int i=0; i<=H; ++i) { draw( (0,i)--(W,i), rgb("333333")+dashed ); }  pen p1 = orange+white+white; pen p2 = blue+white+white; pen p3 = green+white+white; pen p4 = red+white+white;  filldraw((0,0)--(2,0)--(2,3)--(1,3)--(1,1)--(0,1)--cycle, p1); filldraw((2,0)--(2,5)--(3,5)--(3,1)--(8,1)--(8,0)--cycle, p1);  filldraw((3,1)--(3,5)--(4,5)--(4,2)--(6,2)--(6,1)--cycle, p2); filldraw((4,2)--(4,5)--(5,5)--(5,3)--(6,3)--(6,2)--cycle, p2);
filldraw((1,5)--(1,6)--(8,6)--(8,4)--(7,4)--(7,5)--cycle, p3); draw((2,5.05)--(7,5.05), red); draw((1,5.05)--(2,5.05), purple); filldraw((5,4)--(5,5)--(7,5)--(7,4)--(6,4)--(6,3)--(5,3)--cycle, p4);
label("$T_0$", (1.5,2.5)); label("$L_0$", (2.5,4.5)); label("$L_1$", (3.5,4.5)); label("$L_2$", (4.5,4.5)); label("$S$", (5.5,3.5));
label("$B$", (1.5, 5.5));  [/asy]
Then by repeatedly extending the vertical end of $S$ downward, it allows us to swap the vertical edge of $S$ with $L_n$, then with $L_{n-1}$, all the way down to $L_0$.
[asy]
int W=8; int H=6; for (int i=0; i<=W; ++i) { draw( (i,0)--(i,H), rgb("333333")+dashed );  } for (int i=0; i<=H; ++i) { draw( (0,i)--(W,i), rgb("333333")+dashed ); }  pen p1 = orange+white+white; pen p2 = blue+white+white; pen p3 = green+white+white; pen p4 = red+white+white;  filldraw((0,0)--(2,0)--(2,3)--(1,3)--(1,1)--(0,1)--cycle, p1); filldraw((3,0)--(3,4)--(4,4)--(4,1)--(8,1)--(8,0)--cycle, p1);  filldraw((4,1)--(4,4)--(5,4)--(5,2)--(6,2)--(6,1)--cycle, p2); filldraw((5,2)--(5,4)--(6,4)--(6,2)--cycle, p2);
filldraw((1,5)--(1,6)--(8,6)--(8,4)--(7,4)--(7,5)--cycle, p3); draw((2,5.05)--(7,5.05), red); draw((1,5.05)--(2,5.05), purple); filldraw((2,0)--(2,5)--(7,5)--(7,4)--(3,4)--(3,0)--cycle, p4);
label("$T_0$", (1.5,2.5)); label("$L_0$", (3.5,3.5)); label("$L_1$", (4.5,3.5)); label("$L_2$", (5.5,3.5)); label("$S$", (2.5,0.5));
label("$B$", (1.5, 5.5));  [/asy]
Then we can also inductively get cutters below $S$. After getting the cutters, we can cut through $S$, and the vertical component of $S$ becomes a vertical path. This finishes the induction as it gives us more cutters. $\blacksquare$
Now, after getting our cutters $L_0, \dots, L_k$, if $B$ is right up, we can use the process earlier to extend $L_k$, then $L_{k-1}$, till $L_0$ to push $B$ back one.
If $B$ is right-down however, things are complicated. If any of $C_1, \dots, C_n$ lie below it, we can just extend them up to get more cutters. If this still doesn't cover all of $B$, then since $T_0$ borders either $C_1$ or $L_0$, to the right, it must also consist of a horizontal and vertical component. We can then extend $T_0$ as well. Now, \underline{run the same process} to get $T_0, \dots$. After doing so, we get cutters under the entirety of $B$'s pushzone, so we can push it up as well.
By repeatedly pushing up and adding more vertical paths in between, we eventually force an amogus.

Remark (Motivation): The solutions above of this problem I am aware of is this local argument, global arguments considering row by row, and finally global arguments with magical mirror reflections. If anyone knows how in the world the third class of solutions is motivated, please tell me! Anyways the motivation for this solution is noticing that a path touching two distinct edges of the board at a not corner is a win condition.
This post has been edited 4 times. Last edited by YaoAOPS, Jul 21, 2024, 3:53 AM
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
math_comb01
662 posts
#16 • 1 Y
Y by CatinoBarbaraCombinatoric
Really nice problem! Glad that I was able to find the "magical" solution.
Call a parallelogram nice iff it consists of two $45-45-90$ triangles pasted together, cover the right-down and right-up paths with nice parallelograms leaving an isosceles right triangle at borders of the path, it suffices to show that in a tiling of nice parallelograms, at least an area of $n$ is left where the square has dimensions $n \cdot n$, now we can place a mirror inside each cell so that it does not intersect nice parallelograms, it is clear by construction that there are $4n$ boundary edges, fire a laser from each of these boundary edges, it is clear that a laser can't visit a triangle more than once, now we break into cases,
  • If it is a pair of boundary edges on same side of the square, in this case there are at least two empty triangles within the laser beam, yielding area of $1$
  • If it is pair of boundary edges opposite sides of square then there might not be a triangle, contributing $0$
  • If it is a pair of horizontal and vertical edge then we must have at least one triangle contributing $1/2$ to our sum.
Notice that by construction the beams do not intersect, so if the last case occurs then it must come from vertical edges or horizontal edges, assume last case occurs $p$ times, there $2n$ horizontal boundaries and $2n-2p$ vertical, it follows there are atleast $t$ pairs connecting horizontal boundary to another horizontal one, yielding that the empty area is at least $n$, as desired.
Remark 1:[Motivational] There are essentially two ways of approaching this problem, local arguments doing minor optimizations and inducting, and second, global approach by breaking into parallelogram, I went with the global approach, I decided to divide the grid into parallelograms as I noticed that by marking the small isosceles right triangles determines the right up/down path, next the structure of the reduced problem reminded me of MEMO 2015 MellowMelon's solution (apparently doing some physics also helps to motivate the lasers solution), and then the solution was found by some experimenting with where to fire the lasers.

Remark 2: (Question) As there are so many equality cases, should there exist an algebraic solution? I tried using generating functions but got nowhere.
This post has been edited 3 times. Last edited by math_comb01, Jul 22, 2024, 11:27 AM
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
bobthesmartypants
4337 posts
#17 • 3 Y
Y by jp62, CatinoBarbaraCombinatoric, jameskuang1112
This is a really beautiful problem, and I think I have something new to add to the discussion with a novel inductive solution.

First, let's simplify terminology and call both types of paths zigzags.

Consider instead the paths made by the drawn edges inside the grid. I shall call these edge paths, as opposed to grid paths that the problem defines. I claim that in an $N\times N$ grid, there are $T-1$ distinct edge paths, where $T$ is the number of grid paths.

Proof: Consider the graph with vertices at the vertices of the grid. Every time we draw an edge path, we add two degree 3 vertices to the graph (here, we consider a degree 4 vertex as two degree 3 vertices; imagine if two opposite edges don't quite align). In that case, how many degree 3 vertices are in the final drawing?
[asy]
size(4cm);
draw((5,-1)--(0,-1)--(0,-2)--(5,-2)--(5,-3)--(0,-3)--(0,-4)--(5,-4),gray+linewidth(0.5)+miterjoin);
draw((1,-5)--(1,0)--(2,0)--(2,-5)--(3,-5)--(3,0)--(4,0)--(4,-5),gray+linewidth(0.5)+miterjoin);
draw((0,0)--(5,0)--(5,-5)--(0,-5)--cycle,black+linewidth(2.5)+miterjoin);
draw((0,-1)--(3,-1)--(3,-2)--(1,-2)--(1,-4)--(4,-4)--(4,-3)--(2,-3)--(2,-2),black+linewidth(2.5)+miterjoin);
draw((3,0)--(3,-1),black+linewidth(2.5)+miterjoin);
draw((1,-4)--(1,-5),black+linewidth(2.5)+miterjoin);
draw((4,-3)--(4,-1)--(5,-1),black+linewidth(2.5)+miterjoin);

filldraw((0, -1)--(3, -1)--(3, -2)--(1, -2)--(1, -5)--(0, -5)--cycle,white,white+linewidth(2.5)+miterjoin);
draw((0, -1)--(3, -1)--(3, -2)--(1, -2)--(1, -5),black+linewidth(2.5)+miterjoin);
draw((1, -5)--(0, -5)--(0, -1),grey+linewidth(1)+miterjoin+dashed);

filldraw(circle((3, 0), 0.15));
filldraw(circle((0, -1), 0.15));
filldraw(circle((3, -1), 0.15));
filldraw(circle((5, -1), 0.15));
filldraw(circle((2, -2), 0.15));
filldraw(circle((4, -3), 0.15));
filldraw(circle((1, -4), 0.15));
filldraw(circle((1, -5), 0.15));
[/asy]
Notice that if we remove a single grid path, then two degree 3 vertices reduce to degree 2, all the way until we have a single grid path left over. Thus, the number of degree 3 vertices is exactly $2(T-1)$, implying the number of edge paths is exactly $T-1$.

Now, I claim there is a special choice of edge paths that are all zigzags.

First, draw the $T-1$ edge paths such that the arms of every degree 3 $\top$ are part of the same path (for a degree 4 $+$ the arms are part of the same path, and the tip and stem are part of two additional paths). Note that this way the only points edge paths turn are at degree 2 vertices.

Suppose not all edge paths are zigzags, so there exist some paths containing a $\sqcup$-shaped segment. For every such $\sqcup$ we encounter, there must be a degree 3 node in the center; otherwise, since the turns are degree 2 there is only a single grid path surrounding this edge path, creating a U-shaped grid path which is not allowed. This degree 3 node is the start of a new path; depending on which way the first turn goes, we rewire this node such that the appropriate arm of the $\sqcup$ is attached to this new path.
[asy]
size(7cm);
draw((3,-2)--(3,-3)--(1,-3),black+linewidth(2.5)+miterjoin);
draw((0,0)--(0,-2)--(4,-2)--(4,-1),lightred+linewidth(2.5)+miterjoin);

draw((4.5,-1.5)--(5.5,-1.5),black,arrow=Arrow);

draw((6,0)--(6,-2)--(9,-2),black+linewidth(2.5)+miterjoin);
draw((10,-1)--(10,-2)--(9,-2)--(9,-3)--(7,-3),lightred+linewidth(2.5)+miterjoin);
[/asy]
This operation strictly decreases the number of $\sqcup$ path segments that exist whilst maintaining the zigzag of the edited path segments. However, it also allows turns to occur at vertices with degree more than 2. This is okay as we see that this degree 3 turn is surrounded on both sides by turns of the correct orientation and thus cannot be part of another $\sqcup$ shaped path. So eventually we will no longer have any $\sqcup$ occurrences.
[asy]
size(4cm);
draw((5,-1)--(0,-1)--(0,-2)--(5,-2)--(5,-3)--(0,-3)--(0,-4)--(5,-4),gray+linewidth(0.5)+miterjoin);
draw((1,-5)--(1,0)--(2,0)--(2,-5)--(3,-5)--(3,0)--(4,0)--(4,-5),gray+linewidth(0.5)+miterjoin);
draw((0,0)--(5,0)--(5,-5)--(0,-5)--cycle,black+linewidth(2.3)+miterjoin);
draw((0,-1)--(3,-1)--(3,-2)--(1,-2)--(1,-4)--(4,-4)--(4,-3)--(2,-3)--(2,-2),black+linewidth(2.3)+miterjoin);
draw((3,0)--(3,-1),black+linewidth(2.3)+miterjoin);
draw((1,-4)--(1,-5),black+linewidth(2.3)+miterjoin);
draw((4,-3)--(4,-1)--(5,-1),black+linewidth(2.3)+miterjoin);

draw((0,-1)--(3,-1),lightred+linewidth(2.5)+miterjoin);
draw((3,0)--(3,-2)--(1,-2)--(1,-5),lightgreen+linewidth(2.5)+miterjoin);
draw((5,-1)--(4,-1)--(4,-4)--(1,-4),lightblue+linewidth(2.5)+miterjoin);
draw((2,-2)--(2,-3)--(4,-3),lightcyan+linewidth(2.5)+miterjoin);
[/asy]

After establishing all our edge paths are zigzags, we now view them in a different light, as the backbones of a new grid path tiling of an $(N-1)\times (N-1)$ grid! To see this, we simultaneously take every instance of $\top$ and erase the stem.
[asy]
size(9cm);
for(int i=1;i<=4;++i){
  draw((i,0)--(i,-5),gray(0.9)+linewidth(0.5)+miterjoin);
  draw((0,-i)--(5,-i),gray(0.9)+linewidth(0.5)+miterjoin);
}
draw((0,0)--(5,0)--(5,-5)--(0,-5)--cycle,gray(0.8)+linewidth(2.5)+miterjoin);

draw((1,-1)--(2,-1),black+linewidth(3)+miterjoin);
draw((3,-1)--(3,-2)--(1,-2)--(1,-4),black+linewidth(3)+miterjoin);
draw((2,-3)--(3,-3),black+linewidth(3)+miterjoin);
draw((2,-4)--(4,-4)--(4,-1),black+linewidth(3)+miterjoin);

draw((5.5,-2.5)--(6.5,-2.5),black,arrow=Arrow);

for(int i=1;i<=3;++i){
  draw((7+i,-0.5)--(7+i,-4.5),gray+linewidth(0.5)+miterjoin);
  draw((7,-0.5-i)--(11,-0.5-i),gray+linewidth(0.5)+miterjoin);
}
draw((7,-0.5)--(11,-0.5)--(11,-4.5)--(7,-4.5)--cycle,black+linewidth(2.5)+miterjoin);
draw((7,-1.5)--(9,-1.5)--(9,-0.5),black+linewidth(2.5)+miterjoin);
draw((10,-0.5)--(10,-2.5)--(8,-2.5)--(8,-4.5),black+linewidth(2.5)+miterjoin);
draw((8,-3.5)--(10,-3.5)--(10,-2.5),black+linewidth(2.5)+miterjoin);
draw((7,-1.5)--(9,-1.5)--(9,-0.5),black+linewidth(2.5)+miterjoin);
[/asy]
This tiling uses $T-1$ grid paths, but by induction the number of grid paths used must be at least $N-1$. Thus, the number of grid paths $T$ used to tile the $N\times N$ grid must in fact be at least $N$, as desired!
This post has been edited 4 times. Last edited by bobthesmartypants, Sep 22, 2024, 3:18 PM
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
quantam13
112 posts
#18
Y by
WOW this was a great problem(headsolved :showoff:)

I wont highlight the details but the main idea was to induct by path manipulation. Force a path between the top left corner and bottom right corner, delete the path, merge the 2 halves and induct. The forcing path can be done by slowly bit by bit modifying the paths present so that the number of paths do not decrease. c14f335f

Although my solution was nice, i guess im abit sad that i didnt get the magical parallelogram solution :|
This post has been edited 27 times. Last edited by quantam13, Apr 11, 2025, 1:18 AM
Reason: formatting
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
Confident-man
1 post
#19
Y by
MarkBcc168 wrote:
Solution with CANBANKAN.

WLOG the side lengths of a square cell is 1.

Step 1. Converting into covering by parallelogram.

For each right-down path, cover the path by parallelograms with sides of length $\sqrt{2}$ having slope 1. For each right-up path, cover the path by parallelograms with sides of length $\sqrt{2}$ having slope $-1$. Note that in each (nontrivial) path we miss exactly area 1. Thus, if we tile by such parallelograms and show that area of at least $N$ is uncovered, we are done.
[asy]
size(0, 3.5cm);
usepackage("amsmath");
int n=6;
draw(box((0,0), (n,n)), linewidth(1));
for(int i=1; i<n; ++i){
	draw((i,0) -- (i,n), mediumgray);
	draw((0,i) -- (n,i), mediumgray);
}
pen p = linewidth(1);
draw((1,5) -- (1,1) -- (6,1), p);
draw((2,1) -- (2,4) -- (4,4) -- (4,6), p);
draw((0,5) -- (4,5), p);
draw((2,2) -- (5,2) -- (5,5) -- (6,5), p);
draw((3,4) -- (3,3) -- (5,3), p);

picture pic;
pen f = mediumgray;
fill(pic,(0,4)--(0,5)--(1,5)--cycle,f);
fill(pic,(5,0)--(6,0)--(6,1)--cycle,f);
fill(pic,(1,1)--(2,1)--(1,2)--cycle,f);
fill(pic,(4,4)--(4,5)--(3,5)--cycle,f);
fill(pic,(0,5)--(0,6)--(1,6)--cycle,f);
fill(pic,(4,5)--(4,6)--(3,5)--cycle,f);
fill(pic,(2,4)--(3,4)--(2,3)--cycle,f);
fill(pic,(4,2)--(5,2)--(5,3)--cycle,f);
fill(pic,(3,3)--(4,3)--(3,4)--cycle,f);
fill(pic,(6,6)--(5,6)--(6,5)--cycle,f);
fill(pic,(2,1)--(3,1)--(2,2)--cycle,f);
fill(pic,(6,4)--(6,5)--(5,5)--cycle,f);

draw(pic,box((0,0), (n,n)), linewidth(1));

pen p = linewidth(1);
draw(pic,(1,5) -- (1,1) -- (6,1), p);
draw(pic,(2,1) -- (2,4) -- (4,4) -- (4,6), p);
draw(pic,(0,5) -- (4,5), p);
draw(pic,(2,2) -- (5,2) -- (5,5) -- (6,5), p);
draw(pic,(3,4) -- (3,3) -- (5,3), p);

void up(real x, real y) {draw(pic,(x,y) -- (x+1,y+1), p);}
void down(real x, real y) {draw(pic,(x+1,y) -- (x,y+1), p);}

up(1,0); up(2,0); up(3,0); up(4,0); up(5,0);
up(0,0); up(0,1); up(0,2); up(0,3); up(0,4);
up(0,5); up(1,5); up(2,5); up(3,5);
down(1,1); down(1,2); down(1,3); down(1,4); down(2,4); down(3,4);
down(2,1); down(3,1); down(4,1); down(5,1); down(5,2); down(5,3); down(5,4);
up(2,3); up(2,2); up(3,2); up(4,2);
down(3,3); down(4,3); down(4,4); down(4,5); down(5,5);

label("$\implies$", (7,3));
add(shift(8,0)*pic);
[/asy]
The remainder of this problem is Iran TST 2013.

Step 2. Solving Iran TST 2013.

We remove the horizontal/vertical line for a moment. Add in diagonals arbitrarily so that each square has a diagonal.
[asy]
size(3.5cm,0);
int n=6;
draw(box((0,0), (n,n)), linewidth(1));
pen p = linewidth(1);

void up(real x, real y) {draw((x,y) -- (x+1,y+1), p);}
void down(real x, real y) {draw((x+1,y) -- (x,y+1), p);}

up(1,0); up(2,0); up(3,0); up(4,0); up(5,0);
up(0,0); up(0,1); up(0,2); up(0,3); up(0,4);
up(0,5); up(1,5); up(2,5); up(3,5);
down(1,1); down(1,2); down(1,3); down(1,4); down(2,4); down(3,4);
down(2,1); down(3,1); down(4,1); down(5,1); down(5,2); down(5,3); down(5,4);
up(2,3); up(2,2); up(3,2); up(4,2);
down(3,3); down(4,3); down(4,4); down(4,5); down(5,5);
[/asy]

There are $2N$ connected regions by Euler's formula. Moreover, each region must enter and exit the grid (there cannot be a dead end). Thus each region uses exactly two boundary edges of the square.

We relate this back to parallelograms by the following.
  • If a region uses one horizontal and one vertical edge at the boundary, then the area is half-integer, so an area of at least $\tfrac 12$ is uncovered.

    To see this, split the region into several $1$-$1$-$\sqrt 2$ triangles and walk through them in order. Each transition switch the orientation of the edge (from horizontal to vertical and vice versa), so one must pass through an odd number of triangles, and so the area must be half-integer.
  • If a region uses two segments on the same side of the border, then at least area $1$ in that region is uncovered.

    To see this, note that if a region is completely covered by parallelograms, then it must keep going up until it reaches opposite side.

These two observations are enough to finish the problem: if there are no laser paths from one side of the border to the opposite side of the border, then each region has at least $\tfrac 12$ uncovered area.

Otherwise, suppose a laser path connects the top of the border to the bottom of the border, then one cannot have a region from left vertical edge to right vertical edge. Thus, every vertical line segment contribute at least $\tfrac 12$ to the uncovered area. There are $2N$ vertical lines, so we are forced to have uncovered area of at least $2N\cdot\tfrac 12 = N$.
Z K Y
The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
mathfun07
36 posts
#20
Y by
I think this is basically the same as post #7. This is kind of just a sketch.

We may place N-1 X's on the grid that are the origin of the paths, and assume all paths (call them waterfalls) go down and (right or left exclusively) starting from those X's: this is equivalent to the original question.

The basic idea is to track the empty cells, call them 'gaps', in the rows: you can relate gaps to each other through diagonal steps, and show that at least 1 of the paths formed by these gaps survives until the last row, and each gap in that path has to be hit by a distinct waterfall. If there are k waterfalls starting on the top row, then there are N-k gaps on the top row.

Going row by row, all gaps must be hit by a waterfall from the left or right. If the waterfall flows from the left, draw an arrow from the gap going down-left, to create a new gap. Now, this process can only fail N-k-1 times (if an X is blocking the way of the new gap), so there will always be a gap-path going down to the bottom row. Also we can show that a waterfall only hits the gap-path once: Once it hits a gap, its direction is determined, and to hit the gap again, the gap path must cross over the waterfall which is a contradiction. Hence there exists a path of gaps that is N long, but is only hit by N-1 waterfalls, contradiction.

First 45+ mohs question yay.
This post has been edited 1 time. Last edited by mathfun07, May 2, 2025, 10:27 AM
Z K Y
N Quick Reply
G
H
=
a