NCPC25 finished

This commit is contained in:
2025-10-04 16:00:04 +02:00
commit 39396cedd3
21 changed files with 918 additions and 0 deletions

39
src/test/java/ATest.java Normal file
View File

@@ -0,0 +1,39 @@
import com.kattis.ncpc25.log.rider.A;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class ATest {
@Test
public void ATests()
{
assertTrue(test(-4));
assertTrue(test(57));
assertTrue(test(-302));
assertTrue(test(476));
assertTrue(test(999));
assertTrue(test(-999));
assertTrue(test(0));
}
public boolean test(int in)
{
int[] nums = A.getComponents(in);
int num = nums[0] + nums[1];
if(nums[0] == 0 || nums[1] == 0){
System.out.println("etleast one is 0");
System.out.println(in + " = " + nums[0] + " + " + nums[1]);
return false;
}
if((""+Math.abs(nums[0])).length() >= 4 || (""+Math.abs(nums[1])).length() >= 4){
System.out.println(in + " = " + nums[0] + " + " + nums[1]);
return false;
}
if(num != in)
{
System.out.println(in + " = " + nums[0] + " + " + nums[1]);
return false;
}
return true;
}
}

18
src/test/java/CTest.java Normal file
View File

@@ -0,0 +1,18 @@
import com.kattis.ncpc25.log.rider.C;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class CTest {
@Test
public void CTestCases()
{
assertEquals("7 hours", C.countTime("Mon 08:00", "Mon 15:00"));
assertEquals("7 days", C.countTime("Mon 08:00", "Mon 08:00"));
assertEquals("2 minutes", C.countTime("Mon 08:00", "Mon 08:02"));
assertEquals("1 hour and 59 minutes", C.countTime("Mon 22:00", "Mon 23:59"));
assertEquals("7 days", C.countTime("Mon 08:00", "Mon 08:00"));
assertEquals("7 days", C.countTime("Mon 08:00", "Mon 08:00"));
assertEquals("7 days", C.countTime("Mon 08:00", "Mon 08:00"));
}
}

22
src/test/java/DTest.java Normal file
View File

@@ -0,0 +1,22 @@
import com.kattis.ncpc25.log.rider.D;
import org.junit.jupiter.api.Test;
import java.awt.*;
import static org.junit.jupiter.api.Assertions.*;
public class DTest {
@Test
public void DTests()
{
assertTrue(testMaxDiff(D.getTotalLength(new Point[]{new Point(-1, -7), new Point(-1, -11), new Point(0, -9), new Point(2, 2), new Point(1, -2), new Point(-2, -1), new Point(3, 1), new Point(-1, -5), new Point(0, -3), new Point(-3, -11)}), 17.186912));
assertTrue(testMaxDiff(D.getTotalLength(new Point[]{new Point(1, 0), new Point(0,0), new Point(1,1)}), 2));
}
public boolean testMaxDiff(double value, double excpected)
{
if(value == excpected) return true;
return value <= excpected + Math.pow(10, -6) && value >= excpected - Math.pow(10, -6);
}
}

60
src/test/java/JTest.java Normal file
View File

@@ -0,0 +1,60 @@
import com.kattis.ncpc25.log.rider.J;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class JTest {
@Test
public void JTest1()
{
assertEquals("59",J.jump(7, 9));
}
@Test
public void JTest2()
{
assertEquals("infinity", J.jump(7,4));
}
@Test
public void JTest9()
{
assertEquals("infinity", J.jump(7,4));
}
@Test
public void JTest3()
{
assertEquals("7581167638793024", J.jump(100001, 123123123));
}
@Test
public void JTest4()
{
assertEquals("infinity", J.jump(5, 3));
}
@Test
public void JTest5()
{
assertEquals("0", J.jump(1, 0));
}
@Test
public void JTest6()
{
assertEquals("21", J.jump(16, 6));
}
@Test
public void JTest7()
{
assertEquals("10", J.jump(11, 4));
}
@Test
public void JTest8()
{
assertEquals("210", J.jump(67, 20));
}
}