Javac

Pitanje ili opis problema

Java RTE

Link ka zadatku ili odgovarajućoj stranici

https://petlja.org/BubbleBee/r/Problems/2016-drzavno-ss-maje#

Pozdrav svima!
Imam problem sto se tice jave na bubble bee-ju. Naime, pise mi RTE dok na mom kompjuteru radi normalno (NetBeans). Ne razumem se u javine kompjalere (ovo mi je treci program :smile:). Moze pomoc?

Možda mogu da pomognem, ja koristim dev isto. U principu, dev ti ubacuje po defaultu dosta biblioteka i alatki za lakše kompajliranje, što u takmičarskom programiranju i nije baš poželjno jer se na “raw” kompajlerima gleda samo izvorni kod, pa sve što je dev automatski dodao neće raditi. Verovatno ti zato radi kući, ali ne i na serveru. U principu ćeš se navići ili možeš da koristiš bits biblioteku…
Što se konkretnog primera tiče, proveri system pause, getchar itd. i stavi return 0, ipak je INT main, a neki kompajleri to traže :wink:. Dodaj cout<<"\n"; za novi red.

ma ja sam sve zivo i nezivo probao i nista ne radi. ili sam ja “dumb” ili je do sajta. svakako hvala na pomoci :slight_smile:

Nisi lepo procitao zadatak, potrebno je prvo ispisati obim pa povrsinu, a ne obrnuto. Takodje nakon ispisivanja obima trebas da dodas razmak kako bi na izlazu imao dva broja, a ne jedan.

ipak sam “dumb”. kad sam radio ovo u javi, nisam naisao na ovakav problem.
Veliko hvala.

Dešava se, bitno da je problem rešen. Nego da li bi neko od java programera mogao da pomogne oko prvog pitanja?

1 Like

Online judge-ovi uglavnom imaju neke specifične zahteve što se tiče Jave. Probaj da nađeš neko uputstvo kako treba da izgleda submitovan Java kod. Ili isprobavaj neke kombinacije, recimo stavi da ti se main klasa zove Main, ili da ne bude public (nego samo class Main { ...). NetBeans ne bi trebalo da bude izvor nekomatibilnosti - ako hoćeš da proveriš, pod uslovom da imaš samo jednu klasu, uvek možeš da pokreneš javac ImeFajla.java da dobiješ .class fajl, koji se onda pokreće sa java ImeFajla.class. Imaš negde taj kod koji daje RTE?

2 Likes

Vazne su sledeće stvari:

  1. Klasa mora da bude javna
    public class MyClass

  2. Package direktiva NE treba da postoji

  3. Klasa implementira main metodu
    public static void main(String args[])

1 Like

Hvala puno, radi sada. Package direktiva je bila prisutna pa sam obrisao, NetBeans je sam premestio klasu gde treba i sad radi. Samo još mle da skinem :smile:. Gde bih mogao da skinem test primere za proveru? Uzgred ovo je kod ako nekog zanima…

import java.util.Scanner;

public class Maje {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        long n, c, b, br, p, d;
        boolean check=true;
        long[] x;
        Scanner sc = new Scanner (System.in);
        n = sc.nextInt();
        x = new long [1000007];
        x[0]=0;
        for(int i=1; i<=n; i++)
        {
            x[i]=sc.nextInt();
        }
        for(int i=1; i<=n; i++)
        {
            b=1;
            br=0;
            while(b<=x[i])
            {
                b*=10;
                br++;
            }
            b/=10;
            c=1000000000;
            for(int j=0; j<br; j++)
            {
                p=x[i]%10;
                d=x[i]/10;
                p*=b;
                x[i]=p+d;
                if((x[i]<c)&&(x[i]>=x[i-1]))
                {
                    c=x[i];
                }
            }
            if(c<x[i-1] || c==1000000000)
            {
                System.out.println("NE");
                check=false;
                break;
            }
            x[i]=c;
        }
        if(check)
        {
            System.out.println("DA");
        }
    }
    
}

Nije moguce preuzeti primere za odredjeni zadatak. Debagovanje je jako vazno i to treba vezbati!

Za sada je plan da to omogucimo kroz neku vrstu “kupovine” tokenima koji se skupljaju resavanjem zadataka.

Pitanje ili opis problema

Poređenje gore navedenih jezika

Pozdrav svima,
Dok sam radio zadatak Pola-Pola (Rep 2018, 1.) u Javi imao sam par tle-ova. Međutim, IDENTIČNI kod u C++ radi bez problema (bez boostera, nema cin.tie niti ios sync…). Zanimljivo… Ako neko može da pojasni zašto se ovako ponašaju jezici i da dâ neke savete za ubrzavanje jave bio bih zahvalan.
Hvala unapred.
Evo i kodova koga interesuje:

#include<iostream>
#include<queue>

using namespace std;

   int main() {
        int N, s, c=2;
        bool z = false;
        queue<char> x;
        queue<char> y;
        char in;
        cin>>N>>s>>in;
        x.push(in);
        cin>>s>>in;
        y.push(in);
        for(int i=0; i<N-2; i++){
            cin>>s;
            if(s==1){
                if(!z){
                if(c==2){
                    c=0;
                    x.push(y.front());
                    y.pop();
                }
                cin>>in;
                y.push(in);
                c++;
                }
                else{
                    if(c==2){
                    c=0;
                    y.push(x.front());
                    x.pop();
                }
                cin>>in;
                x.push(in);
                c++;
                }
            }
            else{
                z=!z;
            }
        }
        if(!z){
        while(!x.empty()){
            cout<<x.front();
            x.pop();
        }
        while(!y.empty()){
            cout<<y.front();
            y.pop();
        }
        }
        else{
        while(!y.empty()){
            cout<<y.front();
            y.pop();
        }
        while(!x.empty()){
            cout<<x.front();
            x.pop();
        }
        }
        return 0;
        
    }

`indent preformatted text by 4 spaces

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class ParNepar {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int N, s, c=2;
        boolean z = false;
        Queue<Character> x = new LinkedList<Character>();
        Queue<Character> y = new LinkedList<Character>();
        char in;
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        s = sc.nextInt();
        in = sc.next().charAt(0);
        x.add(in);
        s = sc.nextInt();
        in = sc.next().charAt(0);
        y.add(in);
        for(int i=0; i<N-2; i++){
            s = sc.nextInt();
            if(s==1){
                if(!z){
                if(c==2){
                    c=0;
                    x.add(y.peek());
                    y.poll();
                }
                in = sc.next().charAt(0);
                y.add(in);
                c++;
                }
                else{
                    if(c==2){
                    c=0;
                    y.add(x.peek());
                    x.poll();
                }
                in = sc.next().charAt(0);
                x.add(in);
                c++;
                }
            }
            else{
                z=!z;
            }
        }
        if(!z){
        while(!x.isEmpty()){
            System.out.print(x.peek());
            x.poll();
        }
        while(!y.isEmpty()){
            System.out.print(y.peek());
            y.poll();
        }
        }
        else{
        while(!y.isEmpty()){
            System.out.print(y.peek());
            y.poll();
        }
        while(!x.isEmpty()){
            System.out.print(x.peek());
            x.poll();
        }
        }
        
    }
    
}

Najveci razlog bi trebalo da je to sto vreme izvrsavanja koda u Javi ukljucuje i vreme startovanja JVM-a. Zbog toga se nekad postavlja drugacije vremensko ogranicenje za Javu.
Dosta zavisi i od kompajlera koji se koriste, noviji kompajleri imaju vise optimizacija.

1 Like