結果
| 問題 |
No.438 Cwwプログラミング入門
|
| コンテスト | |
| ユーザー |
uafr_cs
|
| 提出日時 | 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");
}
}
}
}
uafr_cs