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);
}
}