#include <cstdio> const size_t MAXN = 1000000; long N, M; long counts[MAXN + 1]; // Αρχικοποίηση του πίνακα counts με μηδενικά int main () { // Διάβασμα του αρχείου εισόδου freopen("aris.in", "r", stdin); scanf("%ld %ld", &N, &M); for (long i = 0; i < N; ++i) { long m; scanf("%ld", &m); counts[m] ++; // Συναντήσαμε την τιμή m, άρα αυξάνουμε την θέση m του πίνακα } // Αρχικοποίηση των μεγεθών που ψάχνουμε long progs = 0; long minCount = N; long maxCount = 0; for (long m = 1; m <= M; ++m) { if (counts[m] > 0) { // Μη μηδενική τιμή // Αυξάνουμε τον αριθμό των προγραμμάτων // και συγκρίνουμε με τo μέχρι στιγμής μέγιστo // και ελάχιστo progs ++; if (counts[m] < minCount) { minCount = counts[m]; } if (counts[m] > maxCount) { maxCount = counts[m]; } } } // Αφού ελέγξουμε για όλα τα πιθανά Μ, έχουμε τις // απαντήσεις οπότε τις εκτυπώνουμε freopen("aris.out", "w", stdout); printf("%ld %ld %ld\n", progs, minCount, maxCount); return 0; }Για παραπάνω παραδείγματα, δείτε τους κώδικες εδώ.
import java.util.Scanner; import java.io.PrintWriter; import java.io.FileInputStream; import java.io.File; class Main { public static void main(String[] arguments) throws Exception { Scanner reader = new Scanner(new FileInputStream("aris.in")); PrintWriter out = new PrintWriter(new File("aris.out")); int N = reader.nextInt(); int M = reader.nextInt(); int[] counts = new int[N + 1]; for (int i = 0; i < N; ++i) { int m = reader.nextInt(); counts[m] ++; } int progs = 0; int minCount = N; int maxCount = 0; for (int m = 1; m <= M; ++m) { if (counts[m] > 0) { progs ++; if (counts[m] < minCount) { minCount = counts[m]; } if (counts[m] > maxCount) { maxCount = counts[m]; } } } out.println(progs + " " + minCount + " " + maxCount); out.close(); } }
Δυστυχώς αυτό είναι ένα από τα γνωστά προβλήματα του judge. Άμα συμβεί ενημερώστε μας εδώ, φτιάχοντας ένα καινούργιο issue και θα προσπαθήσουμε να το φτιάξουμε άμεσα.
Αυτός ο judge είναι πιο επιεικής και στα όρια χρόνου αλλά και στα όρια μνήμης. Όχι κατά πολύ ώστε να περνάνε αργές λύσεις, αλλά αρκετά ώστε για να ευκολύνει τον έλεγχο μίας σωστής λύσης.
Όλα τα testcases βρίσκονται εδώ και εδώ.
Για τα προγράμματα σε c++: g++ -O2 -DCONTEST -s -static -lm -w
Για τα προγράμματα σε java: javac