📄 3128614_tle.java
字号:
import java.util.*;
public class Main
{
class node
{
int pos;
int num1, num2;
String exp;
}
public static void main(String [] args)
{
new Main().solve();
}
private void solve()
{
Scanner cin = new Scanner (System.in);
String exp;
int res;
LinkedList queue = new LinkedList();
int cas = 0;
lable:
while(true)
{
cas++;
exp = cin.next();
if(exp.compareTo("0=0")==0)
{
break;
}
res = Integer.parseInt(exp.substring(1+exp.indexOf('=')));
node t = new node();
t.num1 = t.num2 = t.pos = 0;
t.exp = "";
queue.clear();
queue.addLast(t);
while(!queue.isEmpty())
{
t = (node)queue.removeFirst();
//System.out.println(t.exp+" "+t.num1+" "+t.num2+" "+t.pos);
if(t.exp.length()==0)//||t.exp.charAt(t.exp.length()-1)=='+')
{
t.exp += exp.charAt(t.pos);
t.num2 = (int)(exp.charAt(t.pos++)-'0');
if(t.num1 + t.num2 <= res)
{
queue.addLast(t);
}
}
else
{
if(t.exp.charAt(t.exp.length()-1)=='+')
{
if(exp.charAt(t.pos)!='0')
{
t.exp += exp.charAt(t.pos);
t.num2 = (int)(exp.charAt(t.pos++)-'0');
if(t.num1 + t.num2 <= res)
{
queue.addLast(t);
}
}
}
else
{
node p = new node();
p.exp = t.exp;
p.num1 = t.num1;
p.num2 = t.num2;
p.pos = t.pos;
if(exp.charAt(p.pos)!='=')
{
p.exp += exp.charAt(p.pos);
p.num2 *= 10;
p.num2 += (int)(exp.charAt(p.pos++)-'0');
if(p.num1+p.num2 <= res)
{
queue.addLast(p);
}
}
if(exp.charAt(t.pos)!='=')
{
t.exp += "+";
t.num1 += t.num2;
t.num2 = 0;
//System.out.println("asd = "+t.num1+" "+t.num2);
if(t.num1 + t.num2 <= res)
{
queue.addLast(t);
}
}
else
{
t.exp += '=';
if(t.num1 + t.num2 ==res)
{
System.out.println(cas+". "+t.exp+res);
continue lable;
}
}
}
}
}
System.out.println(cas+". "+"IMPOSSIBLE");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -