mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-08-09 20:25:17 +00:00
246 lines
2.9 KiB
C
246 lines
2.9 KiB
C
// https://adventofcode.com/2020/day/1/input
|
|
// Find 2 entries that give 2020 when added together
|
|
// And 3 entries that give 2020 when added together
|
|
|
|
#pragma target(atarixl)
|
|
|
|
#include <stdio.h>
|
|
#include <conio.h>
|
|
#include <multiply.h>
|
|
|
|
extern unsigned int entries[];
|
|
|
|
void main() {
|
|
unsigned int num_entries = sizeof(entries)/sizeof(unsigned int);
|
|
clrscr();
|
|
printf("looking a+b=2020 within %u entries\n",num_entries);
|
|
for(unsigned int i=0;i<num_entries;i++) {
|
|
for(unsigned int j=i+1;j<num_entries;j++) {
|
|
if(entries[i]+entries[j]==2020) {
|
|
printf("\n");
|
|
printf("match found [%u]%u+[%u]%u=2020\n", i,entries[i], j,entries[j]);
|
|
unsigned long mul = mul16u(entries[i],entries[j]);
|
|
printf("multiplied %lu\n", mul);
|
|
}
|
|
}
|
|
printf(".");
|
|
}
|
|
printf("\nlooking a+b+c=2020 within %u entries\n",num_entries);
|
|
for(unsigned int i=0;i<num_entries;i++) {
|
|
for(unsigned int j=i+1;j<num_entries;j++) {
|
|
for(unsigned int k=j+1;k<num_entries;k++) {
|
|
if(entries[i]+entries[j]+entries[k]==2020) {
|
|
printf("\n");
|
|
printf("match found [%u]%u+[%u]%u+[%u]%u=2020\n", i,entries[i], j,entries[j], k,entries[k]);
|
|
unsigned long mul1 = mul16u(entries[i],entries[k]); // I am cheating a bit here multiplying entry i&k first
|
|
unsigned long mul2 = mul16u( <mul1 ,entries[j] ); // Because I knwo the product of those fit in an unsigned int
|
|
printf("multiplied %lu\n", mul2);
|
|
}
|
|
}
|
|
}
|
|
printf(".");
|
|
}
|
|
}
|
|
|
|
unsigned int entries[] = {
|
|
1935,
|
|
1956,
|
|
1991,
|
|
1425,
|
|
1671,
|
|
1537,
|
|
1984,
|
|
1569,
|
|
1873,
|
|
1840,
|
|
1720,
|
|
1937,
|
|
1823,
|
|
1625,
|
|
1727,
|
|
1812,
|
|
1714,
|
|
1900,
|
|
1939,
|
|
1931,
|
|
1951,
|
|
1756,
|
|
1942,
|
|
1611,
|
|
1979,
|
|
1930,
|
|
1996,
|
|
2000,
|
|
1544,
|
|
1780,
|
|
1687,
|
|
1760,
|
|
1836,
|
|
1814,
|
|
1691,
|
|
1817,
|
|
1964,
|
|
1899,
|
|
1577,
|
|
1547,
|
|
866,
|
|
1560,
|
|
1988,
|
|
1601,
|
|
1970,
|
|
1738,
|
|
1507,
|
|
1667,
|
|
1851,
|
|
1933,
|
|
1515,
|
|
1856,
|
|
1969,
|
|
1860,
|
|
1801,
|
|
2007,
|
|
1866,
|
|
1800,
|
|
1749,
|
|
1843,
|
|
1711,
|
|
1495,
|
|
1905,
|
|
763,
|
|
1672,
|
|
1858,
|
|
1987,
|
|
1492,
|
|
1849,
|
|
1993,
|
|
1737,
|
|
1874,
|
|
1658,
|
|
1810,
|
|
1665,
|
|
1768,
|
|
1950,
|
|
1879,
|
|
1816,
|
|
1868,
|
|
1995,
|
|
1763,
|
|
1783,
|
|
1833,
|
|
1968,
|
|
1847,
|
|
1748,
|
|
1725,
|
|
1891,
|
|
1755,
|
|
286,
|
|
1976,
|
|
1977,
|
|
1655,
|
|
1808,
|
|
1986,
|
|
1779,
|
|
1861,
|
|
1953,
|
|
1888,
|
|
1792,
|
|
1811,
|
|
1872,
|
|
1790,
|
|
1839,
|
|
1985,
|
|
1827,
|
|
1842,
|
|
1925,
|
|
1735,
|
|
1635,
|
|
1821,
|
|
1820,
|
|
1973,
|
|
1531,
|
|
1770,
|
|
59,
|
|
1846,
|
|
1932,
|
|
1907,
|
|
1730,
|
|
933,
|
|
1395,
|
|
1753,
|
|
1751,
|
|
361,
|
|
1530,
|
|
1782,
|
|
1087,
|
|
1589,
|
|
1929,
|
|
1795,
|
|
1815,
|
|
1732,
|
|
1765,
|
|
1877,
|
|
1722,
|
|
526,
|
|
1709,
|
|
1789,
|
|
1892,
|
|
1913,
|
|
1662,
|
|
1809,
|
|
1670,
|
|
1947,
|
|
1835,
|
|
1587,
|
|
1758,
|
|
1982,
|
|
2009,
|
|
1757,
|
|
670,
|
|
1983,
|
|
1524,
|
|
1878,
|
|
1796,
|
|
1952,
|
|
566,
|
|
1922,
|
|
1882,
|
|
1870,
|
|
1799,
|
|
1731,
|
|
1724,
|
|
1805,
|
|
2003,
|
|
1596,
|
|
1566,
|
|
1853,
|
|
1911,
|
|
1857,
|
|
1739,
|
|
1744,
|
|
1627,
|
|
1729,
|
|
1745,
|
|
1845,
|
|
1582,
|
|
1884,
|
|
1883,
|
|
1941,
|
|
1764,
|
|
1685,
|
|
1791,
|
|
1837,
|
|
1697,
|
|
1742,
|
|
1781,
|
|
1948,
|
|
1876,
|
|
1989,
|
|
1643,
|
|
1871,
|
|
1906,
|
|
1726,
|
|
1958,
|
|
1502,
|
|
1927,
|
|
1946
|
|
}; |