Deutsch   English   Français   Italiano  
<vrhgqd$3ku1m$2@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: DFS <nospam@dfs.com>
Newsgroups: comp.lang.c
Subject: OT: CSES Number Spiral algorithm
Date: Thu, 20 Mar 2025 12:47:11 -0400
Organization: A noiseless patient Spider
Lines: 27
Message-ID: <vrhgqd$3ku1m$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 20 Mar 2025 17:47:09 +0100 (CET)
Injection-Info: dont-email.me; posting-host="6ed1d979db33810c8b2880032b171297";
	logging-data="3831862"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19kn2dLX/92Xz9q4uCb/KTM"
User-Agent: Betterbird (Windows)
Cancel-Lock: sha1:pE4+ycTiYR/0yl+8NFOiR2EVjSw=
Content-Language: en-US
Bytes: 1794

I don't have a C question, but rather I'd like input about algorithmic 
approaches.

https://cses.fi/problemset/task/1071

It's an 'infinite grid'.  You have to find the value at rows-columns 
from 1 to 10^9.

First thing you notice about the 5x5 grid is the values in odd-numbered 
columns begin with the square of the column number, and the values in 
even-numbered rows begin with the square of the row number.

I followed the number pattern and built a grid in Excel and expanded it 
to 10x10 for more testing.

https://imgur.com/x4VymmA

Then coded 4 conditions      solution
1. row <= col and col odd    (col * col) - row + 1
2. row <= col and col even   ((col-1) * (col-1)) + row
3. row >  col and row odd    ((row-1) * (row-1)) + col
4. row >  col and row even   (row * row) - col + 1

My full C code submission was accepted the first time.

How would you have done it?