結果
問題 |
No.438 Cwwプログラミング入門
|
ユーザー |
![]() |
提出日時 | 2016-10-28 23:56:05 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 3,380 bytes |
コンパイル時間 | 3,449 ms |
コンパイル使用メモリ | 81,004 KB |
実行使用メモリ | 54,652 KB |
最終ジャッジ日時 | 2024-11-24 21:20:16 |
合計ジャッジ時間 | 21,874 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 89 WA * 7 RE * 2 |
ソースコード
import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.PriorityQueue; import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class Main { public static long exec(long x, long y, char[] program){ LinkedList<Long> stack = new LinkedList<Long>(); for(final char ch : program){ switch(ch){ case 'c': stack.addFirst(x); break; case 'w': stack.addFirst(y); break; case 'C': final long a_c = stack.poll(); final long b_c = stack.poll(); stack.addFirst(a_c + b_c); break; case 'W': final long a_w = stack.poll(); final long b_w = stack.poll(); stack.addFirst(a_w - b_w); break; } } return stack.poll(); } public static class Ref<T> { T value; public void setValue(T value){ this.value = value; } public T getValue(){ return value; } } public static long gcd(long a, long b){ return b == 0 ? a : gcd(b, a % b); } public static long extcdf(long a, long b, Ref<Long> x, Ref<Long> y){ long g = a; x.setValue(1l); y.setValue(0l); if(b != 0){ g = extcdf(b, a % b, y, x); y.setValue(y.getValue() - (a / b) * x.getValue()); } return g; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); final long x = sc.nextLong(); final long y = sc.nextLong(); final long z = sc.nextLong(); final long gcd = gcd(x, y); if(z % gcd != 0){ System.out.println("mourennaihasimasenn"); }else{ LinkedList<Character> answer_list = new LinkedList<>(); long curr_value = 0; while(curr_value != z && answer_list.size() <= 10000){ if(curr_value < z){ final long diff = z - curr_value; if(x > y){ //if(diff > y){ answer_list.addLast('c'); if(answer_list.size() != 1){ answer_list.addLast('C'); } curr_value += x; /*}else{ answer_list.addLast('w'); if(answer_list.size() != 1){ answer_list.addLast('C'); } curr_value += y; }*/ }else{ //if(diff > x){ answer_list.addLast('w'); if(answer_list.size() != 1){ answer_list.addLast('C'); } curr_value += y; /*}else{ answer_list.addLast('c'); if(answer_list.size() != 1){ answer_list.addLast('C'); } curr_value += x; }*/ } }else{ final long diff = curr_value - z; if(x > y){ /*if(diff > y){ answer_list.addFirst('c'); if(answer_list.size() != 1){ answer_list.addLast('W'); } curr_value -= x; }else{*/ answer_list.addFirst('w'); if(answer_list.size() != 1){ answer_list.addLast('W'); } curr_value -= y; //} }else{ /*if(diff > x){ answer_list.addFirst('w'); if(answer_list.size() != 1){ answer_list.addLast('W'); } curr_value -= y; }else{*/ answer_list.addFirst('c'); if(answer_list.size() != 1){ answer_list.addLast('W'); } curr_value -= x; //} } } } //System.out.println(answer_list); if(curr_value == z && answer_list.size() <= 10000){ StringBuilder sb = new StringBuilder(); for(final char ch : answer_list){ sb.append(ch); } System.out.println(sb); }else{ System.out.println("mourennaihasimasenn"); } } } }