Task: | Alkuluvut |
Sender: | TapaniS |
Submission time: | 2025-09-27 22:38:34 +0300 |
Language: | Java |
Status: | READY |
Result: | 17 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 17 |
#2 | TIME LIMIT EXCEEDED | 0 |
#3 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.41 s | 1, 2, 3 | details |
#2 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
#3 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
import java.util.*; public class alkuluvut { public static void main(String[] args) { Scanner input = new Scanner(System.in); int t = Integer.parseInt(input.nextLine()); int[] k = new int[t]; // numeroiden maara String[] numerot = new String[t]; // numerot for (int i = 0; i < t; i++) { k[i] = Integer.parseInt(input.nextLine()); numerot[i] = input.nextLine(); } input.close(); // Program here // Alkuluvut int limit = 100000; boolean[] isPrime = new boolean[limit + 1]; for (int i = 2; i <= limit; i++) { isPrime[i] = true; } for (int p = 2; p * p <= limit; p++) { if (isPrime[p]) { for (int multiple = p * p; multiple <= limit; multiple += p) { isPrime[multiple] = false; } } } ArrayList<Integer> primes = new ArrayList<>(); for (int i = 2; i <= limit; i++) { if (isPrime[i]) { primes.add(i); } } int limit2 = primes.size(); for (int i = 0; i < t; i++) { // tapaus t int n = k[i]; // maara String[] numberParts = numerot[i].split("\\s+"); int[] numbers = new int[n]; for (int i2 = 0; i2 < n; i2++) { numbers[i2] = Integer.parseInt(numberParts[i2]); } if (n == 1) { int x = numbers[0]; switch (x) { case 1: System.out.println("YES"); System.out.println("11"); break; case 2: System.out.println("YES"); System.out.println("2"); break; case 3: System.out.println("YES"); System.out.println("3"); break; case 4: System.out.println("NO"); break; case 5: System.out.println("YES"); System.out.println("5"); break; case 6: System.out.println("NO"); break; case 7: System.out.println("YES"); System.out.println("7"); break; case 8: System.out.println("NO"); break; case 9: System.out.println("NO"); break; default: System.out.println("NO"); } // switch } // n==1 // n>1 boolean loytyi = false; for (int i1 = 5; i1 < limit2; i1++) { if (loytyi) {break;} String test = primes.get(i1) + ""; int counter = 0; for (int i2 = 0; i2 < n; i2++) { String num1 = numbers[i2] + ""; char c = num1.charAt(0); if (test.indexOf(c) >= 0) { test = test.replace(num1, ""); counter++; } } // i2 if (counter == n) { // kaikki numerot loytyi if (test.equals("")) { loytyi = true; System.out.println("YES"); System.out.println(primes.get(i1) ); } } } // i1 if ((!loytyi) && (n > 1)) { System.out.println("NO"); } } // tapaus t } }
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
10 1 0 1 1 ... |
correct output |
---|
NO YES 11 YES 2 ... |
user output |
---|
NO YES 11 YES 2 ... |
Test 2
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
175 1 0 1 1 ... |
correct output |
---|
NO YES 11 YES 2 ... |
user output |
---|
(empty) |
Test 3
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
848 4 0 1 2 3 4 0 1 2 4 ... |
correct output |
---|
YES 10223 YES 4021 YES ... |
user output |
---|
(empty) |