Συχνές ερωτήσεις

Για οποιοδήποτε πρόβλημα έχετε μην διστάσετε να γράψετε εδώ.

Παράδειγμα υποβολής σε C++

Για το πρόβλημα aris του 28ου διαγωνισμού έχουμε
#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;
}
Για παραπάνω παραδείγματα, δείτε τους κώδικες εδώ.

Παράδειγμα υποβολής σε Java

Για τις υποβολές σε Java, το όνομα της κλάσης πρέπει να είναι Main. Για το πρόβλημα aris του 28ου διαγωνισμού έχουμε
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 δεν ελέγχει την υποβολή μου ή έχει κολλήσει στο Running/On Queue.

Δυστυχώς αυτό είναι ένα από τα γνωστά προβλήματα του judge. Άμα συμβεί ενημερώστε μας εδώ, φτιάχοντας ένα καινούργιο issue και θα προσπαθήσουμε να το φτιάξουμε άμεσα.

Η λύση μου παιρνάει εδώ και όχι στο HelleniCO

Αυτός ο judge είναι πιο επιεικής και στα όρια χρόνου αλλά και στα όρια μνήμης. Όχι κατά πολύ ώστε να περνάνε αργές λύσεις, αλλά αρκετά ώστε για να ευκολύνει τον έλεγχο μίας σωστής λύσης.

Πού μπορώ να βρω τα testcases;

Όλα τα testcases βρίσκονται εδώ και εδώ.

Ποιες εντολές χρησιμοποιούνται για compilation;

Για τα προγράμματα σε c++: g++ -O2 -DCONTEST -s -static -lm -w
Για τα προγράμματα σε java: javac