2

USACO トレーニング ページの最初の問題で困っています。

このタスクは、text.in ファイルから 2 つの文字列を要求し、文字列を文字の積 (a=1、b=2、z=26) である数値に変換し、残りの数値かどうかを確認します。 /47 は互いに等しい (等しい場合は "GO" を出力し、そうでない場合は "STAY" を出力)。

私のコンピューターでは問題なく動作しますが、送信すると表示されます

実行 1: 実行エラー: プログラムは終了ステータス `1' で終了しました。

    ------ Data for Run 1 [length=14 bytes] ------
    COMETQ 
    HVNGAT 
    ----------------------------

      Your program printed data to stderr.  Here is the data:
      -------------------
      Exception_in_thread_"main"_java.io.FileNotFoundException:_test.in_(No_such_file_or_directory)
        at_java.io.FileInputStream.open(Native_Method)
        at_java.io.FileInputStream.<init>(FileInputStream.java:106)
        at_java.io.FileInputStream.<init>(FileInputStream.java:66)
        at_java.io.FileReader.<init>(FileReader.java:41)
        at_ride.main(Unknown_Source)

このhttp://cerberus.delos.com:790/usacoprobfix?a=VjAAvKvQucHを見てみましたが、「スタックの使用」や「範囲外」などの用語をよく理解できませんでした。

遅すぎるためにコードが受け入れられないのはなぜですか? この問題を解決するための助けをいただければ幸いです。

  /*
ID: Anon
LANG: JAVA
TASK: ride
*/
import java.io.*;
import java.util.*;

class ride
{
  public static void main (String [] args) throws IOException
  {

     //input
     BufferedReader br = new BufferedReader(new FileReader("test.in"));

     //output
     PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out")));

     String nameComet = br.readLine();
     String nameGroup = br.readLine();

     int productComet = 1;
     int productGroup = 1;

     //loop through each letter in word
     for(int i=0; i<nameComet.length(); i++) 
     {
        //sets letter to char letter
        char letter = nameComet.charAt(i);
        //set number of letter to correspondnum
        int numComet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(letter) + 1;
        productComet *= numComet;
     }

     for(int i=0; i<nameGroup.length(); i++) 
     {
        //sets letter to char letter
        char letter = nameGroup.charAt(i);
        //set number of letter to correspondnum
        int numGroup = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(letter) + 1;
        productGroup *= numGroup;
     }

        int modComet = productComet % 47;
        int modGroup = productGroup % 47;

    if (modComet == modGroup)
    {
        out.println("GO");
    }
    else
    {
        out.println("STAY");
    }

     //close everything
     out.close();
     System.exit(0);
}
}
4

1 に答える 1