結果
問題 |
No.438 Cwwプログラミング入門
|
ユーザー |
![]() |
提出日時 | 2016-10-29 00:07:17 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 3,360 bytes |
コンパイル時間 | 2,386 ms |
コンパイル使用メモリ | 89,744 KB |
実行使用メモリ | 55,792 KB |
最終ジャッジ日時 | 2024-11-24 22:07:54 |
合計ジャッジ時間 | 17,957 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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('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{ if(diff == x){ 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{ final long diff = curr_value - z; if(x > y){ if(diff == x){ 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 == y){ 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"); } } } }