Author SHA1 Message Date
Zacharias 7a00567502 NCPC26 Practise 2 2026-04-17 18:29:07 +02:00
Zacharias 39396cedd3 NCPC25 finished 2025-10-04 16:00:04 +02:00
31 changed files with 258 additions and 508 deletions

No files matched your search

View File
File renamed without changes.
View File
File renamed without changes.
+1
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
+2 -1
View File
@@ -4,7 +4,8 @@
<component name="FrameworkDetectionExcludesConfiguration"> <component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" /> <file type="web" url="file://$PROJECT_DIR$" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK"> <component name="KubernetesApiProvider"><![CDATA[{}]]></component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="corretto-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" /> <mapping directory="$PROJECT_DIR$" vcs="Git" />
</component> </component>
</project> </project>
-7
View File
@@ -1,7 +0,0 @@
# NCPC26!!
This branch contains the code for NCPC 2026
here we have 3 folder containing all problems
- py: The python code
- java: The java code
- c: The c
View File
File renamed without changes.
-10
View File
@@ -1,10 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Ignored default folder with query files
/queries/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
-77
View File
@@ -1,77 +0,0 @@
#include <stdio.h>
#include <math.h>
int main()
{
int ship_x, ship_y;
int treasure_x, treasure_y;
int direction_x, direction_y;
int movement_help;
scanf("%d %d", &ship_x, &ship_y);
scanf("%d %d", &treasure_x, &treasure_y);
while (((ship_x == treasure_x) && (ship_y == treasure_y))==0){
direction_x = ship_x - treasure_x;
direction_y = ship_y - treasure_y;
//diagonal movement
if (abs(direction_x) == abs(direction_y)){
//NortEeast movment
if((direction_x < 0) && (direction_y < 0)){
printf("NE\n");
ship_x -= direction_x;
ship_y -= direction_y;
}
//NortWest movement
else if((direction_x > 0) && (direction_y < 0)){
printf("NW\n");
ship_x -= direction_x;
ship_y -= direction_y;
}
//SouthWest movement
else if((direction_x > 0) && (direction_y > 0)){
printf("SW\n");
ship_x -= direction_x;
ship_y -= direction_y;
}
//SouthEast movement
else if((direction_x < 0) && (direction_y > 0)){
printf("SE\n");
ship_x -= direction_x;
ship_y -= direction_y;
}
}
else if((abs(direction_x) != abs(direction_y))){
//horisontal / vertical movement
if(abs(direction_x) > abs(direction_y)){
movement_help = abs(abs(direction_x) - abs(direction_y));
//East movement
if(direction_x < 0){
printf("E\n");
ship_x += movement_help;
}
//West movement
if(direction_x > 0){
printf("W\n");
ship_x -= movement_help;
}
}
if(abs(direction_x) < abs(direction_y)){
movement_help = abs( abs(direction_y) - abs(direction_x));
//North Movement
if(direction_y < 0){
printf("N\n");
ship_y += movement_help;
}
//South Movement
if(direction_y > 0){
printf("S\n");
ship_y -= movement_help;
}
}
}
}
}
View File
Whitespace-only changes.
File renamed without changes.
@@ -1,6 +1,6 @@
#Sat Oct 03 11:00:43 CEST 2026 #Sat Oct 04 11:03:43 CEST 2025
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
Vendored Regular → Executable
View File
File renamed without changes.
View File
File renamed without changes.
-1
View File
@@ -1 +0,0 @@
rootProject.name = 'java'
-31
View File
@@ -1,31 +0,0 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class B {
record Pair<K, V>(K key, V value)
{}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
int n = Integer.parseInt(input.split(" ")[0]);
int k = Integer.parseInt(input.split(" ")[1]);
int[] slots = new int[k];
HashMap<String>
for(int i = 0; i < n; i++)
{
input = br.readLine();
int org = Integer.parseInt(input.split(" ")[0])-1;
int dest = Integer.parseInt(input.split(" ")[1])-1;
slots[org]--;
slots[dest]++;
}
long redudent = Arrays.stream(slots).filter((i) -> i == 0).count();
System.out.println(redudent);
}
}
-52
View File
@@ -1,52 +0,0 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class D {
public static void main(String[] args) throws Exception {
String spondee = "--";
String trocha = "-u";
String dactyl = "-uu";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String in = br.readLine();
int spondees = 0;
int dactyls = 0;
for(int i = 0; i < 5; i++)
{
if(in.startsWith(spondee))
{
spondees++;
in = in.substring(spondee.length());
}
else if(in.startsWith(dactyl))
{
dactyls++;
in = in.substring(dactyl.length());
}
else
{
System.out.println("no");
return;
}
}
if(!(spondees + dactyls == 5))
{
System.out.println("no");
return;
}
if(in.length() > 2)
{
System.out.println("no");
return;
}
if(!(in.endsWith(spondee) || in.endsWith(trocha)))
{
System.out.println("no");
return;
}
System.out.println("yes");
}
}
-181
View File
@@ -1,181 +0,0 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
public class E {
public static void main(String[] args) throws Exception {
char[][] nums = {
// 0
{
'.', '#', '#', '.',
'#', '.', '.', '#',
'#', '.', '.', '#',
'.', '.', '.', '.',
'#', '.', '.', '#',
'#', '.', '.', '#',
'.', '#', '#', '.'
},
// 1
{
'.', '.', '.', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '.', '.', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '.', '.', '.'
},
// 2
{
'.', '#', '#', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '#', '#', '.',
'#', '.', '.', '.',
'#', '.', '.', '.',
'.', '#', '#', '.'
},
// 3
{
'.', '#', '#', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '#', '#', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '#', '#', '.'
},
// 4
{
'.', '.', '.', '.',
'#', '.', '.', '#',
'#', '.', '.', '#',
'.', '#', '#', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '.', '.', '.'
},
// 5
{
'.', '#', '#', '.',
'#', '.', '.', '.',
'#', '.', '.', '.',
'.', '#', '#', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '#', '#', '.'
},
// 6
{
'.', '#', '#', '.',
'#', '.', '.', '.',
'#', '.', '.', '.',
'.', '#', '#', '.',
'#', '.', '.', '#',
'#', '.', '.', '#',
'.', '#', '#', '.'
},
// 7
{
'.', '#', '#', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '.', '.', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '.', '.', '.'
},
// 8
{
'.', '#', '#', '.',
'#', '.', '.', '#',
'#', '.', '.', '#',
'.', '#', '#', '.',
'#', '.', '.', '#',
'#', '.', '.', '#',
'.', '#', '#', '.'
},
// 9
{
'.', '#', '#', '.',
'#', '.', '.', '#',
'#', '.', '.', '#',
'.', '#', '#', '.',
'.', '.', '.', '#',
'.', '.', '.', '#',
'.', '#', '#', '.'
}
};
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
for(int i = 0; i < 7; i++)
{
sb.append(br.readLine());
}
char[] input = sb.toString().toCharArray();
ArrayList<Integer> posibleNums = new ArrayList<>();
for(int i = 0; i < 10; i++)
{
if(Arrays.equals(nums[i], input))
{
posibleNums.add(i);
}
}
if(!posibleNums.isEmpty())
{
System.out.println(posibleNums.get(0));
return;
}
for(int i = 10; i < 100; i++)
{
char[] compiledNum = compileNum(nums, i);
if(Arrays.equals(compiledNum, input))
{
posibleNums.add(i);
}
}
if(posibleNums.isEmpty())
{
System.out.println("impossible");
return;
}
posibleNums.sort(Integer::compareTo);
sb = new StringBuilder();
StringBuilder finalSb = sb;
posibleNums.forEach((i) -> {
finalSb.append(i).append(" ");
});
String output = sb.toString().trim();
System.out.println(output);
}
private static char[] compileNum(char[][] nums, int i)
{
int tio = i / 10;
int ett = i % 10;
char[] out = new char[28];
for(int j = 0; j < 28; j++)
{
out[j] = nums[tio][j] == nums[ett][j] ? '.' : '#';
}
return out;
}
}
-34
View File
@@ -1,34 +0,0 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class I {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String crewStr = br.readLine();
String hermit1Str = br.readLine();
String hermit2Str = br.readLine();
String hermit3Str = br.readLine();
int crew = Integer.parseInt(crewStr);
int hermit1 = Integer.parseInt(hermit1Str);
int hermit2 = Integer.parseInt(hermit2Str);
int hermit3 = Integer.parseInt(hermit3Str);
ArrayList<Integer> hermits = new ArrayList<>();
hermits.add(hermit1);
hermits.add(hermit2);
hermits.add(hermit3);
hermits.sort(Integer::compareTo);
if(hermits.get(0) + crew >= hermits.get(1))
{
System.out.println("impossible");
}
else
{
System.out.println(hermits.get(0) + crew);
}
}
}
-25
View File
@@ -1,25 +0,0 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class K {
static record Pair<K, V>(K key, V value)
{}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int numTrees = Integer.parseInt(br.readLine());
ArrayList<Pair<Integer, Integer>> trees = new ArrayList<>();
for(int i = 0; i < numTrees; i++)
{
String str = br.readLine();
int i1 = Integer.parseInt(str.split(" ")[0]);
int i2 = Integer.parseInt(str.split(" ")[1]);
trees.add(new Pair<>(i1, i2));
}
}
}
-38
View File
@@ -1,38 +0,0 @@
import sys
for line in sys.stdin:
pices = int(line)
if (pices == 0):
print(0)
exit()
arr = list()
arr = map(int, input().split())
ar = sorted(arr)
half = ar[pices-1] / 2
i = 0
index = 0
closest = 1001
if (pices == 1):
print(ar[0])
exit()
while ar[i] <= half:
i += 1
if i > 0:
if (ar[i] - half) <= closest:
closest = (ar[i] - half)
index = i
if (half - ar[i-1]) <= closest:
closest = (ar[i-1] - half)
index = i-1
else:
index = 0
print(max((ar[pices-1] - ar[index]), ar[index]))
-26
View File
@@ -1,26 +0,0 @@
3
400 199 201
3
400 202 199
3
400 201 198
2
500 100
2
101 99
3
100 100 100
3
100 200 300
3
1000 1 1
3
1000 500 100
3
100 101 99
3
100 150 50
4
200 400 200 100
7
100 100 900 500 500 1000 400
-22
View File
@@ -1,22 +0,0 @@
3
401 600 1000
3
1 600 1000
2
1 2
2
1 1
3
1 1 2
4
1 2 1 1
4
1 2 2 1
4
1 2 2 2
4
400 1000 1000 1000
5
1000 1000 1000 998 22
4
300 500 150 100
View File
Whitespace-only changes.
+1
View File
@@ -0,0 +1 @@
rootProject.name = 'NCPC-g'
@@ -0,0 +1,68 @@
package com.kattis.ncpc26.p2.pending;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class D {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[][] board = new char[8][8];
for(int i = 0; i < 8; i++)
{
board[i] = br.readLine().toCharArray();
}
int[][] dig = {
{1,1}, {-1,1}, {-1,1}, {-1,-1}
};
for(int bx = 0; bx < 8; bx++)
{
for(int by = 0; by < 8; by++)
{
if(board[bx][by] == '*')
{
for(int i = 0; i < 8; i++)
{
if(i == bx) continue;
if(board[i][by] == '*')
{
System.out.println("invalid");
return;
}
}
for(int i = 0; i < 8; i++)
{
if(i == by) continue;
if(board[bx][i] == '*')
{
System.out.println("invalid");
return;
}
}
}
for(int i = 0; i < 2; i++)
{
int[] mod = dig[i];
int x = mod[0];
int y = mod[1];
int base = (i==0?0:7);
for(int j = 0; j < 8; j++)
{
if(base+x*j == bx && y*j == by) continue;
if(board[base+x*j][y*j] == '*')
{
System.out.println("invalid");
return;
}
}
}
}
}
System.out.println("valid");
}
}
@@ -0,0 +1,44 @@
package com.kattis.ncpc26.p2.pending;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Locale;
import java.util.Scanner;
public class E {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] maxNumber = new int[n];
int[] minNumber = new int[n];
for(int i = 0; i < n; i++)
{
String hexNum = br.readLine().toUpperCase(Locale.ROOT);
if(hexNum.length() > 1 && (hexNum.startsWith("0") || hexNum.startsWith("D")))
{
hexNum = "d" + hexNum.substring(1);
}
{
minNumber[i] = Integer.parseInt(hexNum.replaceAll("B", "8").replaceAll("D", "0"), 16);
maxNumber[i] = Integer.parseInt(hexNum.replaceAll("8", "B").replaceAll("0", "D"), 16);
}
}
int maxOut = 0;
int minOut = 0;
for(int i = 0; i < n; i++) {
minOut += minNumber[i];
maxOut += maxNumber[i];
}
System.out.println(Integer.toHexString(maxOut).toUpperCase(Locale.ROOT));
System.out.println(Integer.toHexString(minOut).toUpperCase(Locale.ROOT));
}
}
+39
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
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
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
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));
}
}