GYM 100827 A.Runes(水~)
来源:互联网 发布:西门代练淘宝店 编辑:程序博客网 时间:2024/04/30 21:28
Description
给出一个式子,其中有一种数字全部被打了问号,问是否可以填入这个数字使得等式成立且式子合法,所谓合法指的是没有前置0,也不能有-0
Input
第一行一整数T表示用例组数,之后输入一个a op b = c形式的式子,其中op是+,-,*中的一种,a,b,c的长度不会超过6(1<=T<=100)
Output
对于每组用例,如果用一个在式子中未出现的数字替换掉问号之后式子成立则输出这个数字,否则输出-1
Sample Input
5
1+1=?
123*45?=5?088
-5?*-1=5?
19–45=5?
??*??=302?
Sample Output
2
6
0
-1
5
Solution
枚举0~9即可,注意两种不合法情况,即前置0和-0
Code
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;typedef long long ll;#define INF 0x3f3f3f3f#define maxn 1111int T;char s[maxn],c[maxn];int deal(int l,int r){ int sign=1; if(c[l]=='-') { if(c[l+1]=='0')return INF; sign=-1,l++; } if(c[l]=='0'&&l<r)return INF; int ans=0; for(int i=l;i<=r;i++)ans=10*ans+c[i]-'0'; return sign*ans;}int flag[11];int main(){ scanf("%d",&T); while(T--) { memset(flag,0,sizeof(flag)); scanf("%s",s); int len=strlen(s),gg=-1; for(int i=0;i<len;i++) if(s[i]>='0'&&s[i]<='9')flag[s[i]-'0']=1; for(int k=0;k<10;k++) { if(gg!=-1)break; if(flag[k])continue; for(int i=0;i<len;i++) { c[i]=s[i]; if(c[i]=='?')c[i]=k+'0'; } int pos1,pos2,type=-1; for(int i=1;i<len;i++) { if(type==-1) { if(c[i]=='+')type=1,pos1=i; if(c[i]=='-')type=2,pos1=i; if(c[i]=='*')type=3,pos1=i; } if(c[i]=='=')pos2=i; } int x=deal(0,pos1-1),y=deal(pos1+1,pos2-1),z=deal(pos2+1,len-1); if(x==INF||y==INF||z==INF)continue; if(type==1&&x+y==z)gg=k; else if(type==2&&x-y==z)gg=k; else if(type==3&&1ll*x*y==1ll*z)gg=k; } printf("%d\n",gg); } return 0;}
0 0
- GYM 100827 A.Runes(水~)
- codeforces gym 100827A Runes
- Gym 100803A(贪心)
- GYM 100090 A. After Two Hares(水~)
- GYM 100488 E.Just Change a Word(水~)
- GYM 100712 A.Who Is The Winner?(水~)
- GYM 101149 A.Balls in Urn(水~)
- GYM 101086 A.My Friend of Misery(水~)
- Gym 100685A Ariel (&运算)
- Gym 100851A - Adjustment Office(模拟)
- GYM 101128 A.Promotions(dfs)
- GYM 101102 A.Coins(01背包)
- GYM 101173 A.Appearance Analysis(map)
- GYM 101128 A.Promotions(dfs)
- gym 101190A Abbreviation (模拟)
- GYM 100247 A. The Power of the Dark Side(水~)
- Gym 100015A
- codeforces gym 100645A
- MySQL 5.7中sys是一个MySQL自带的系统库
- 每天一个 Linux 命令(44):top命令
- Spark性能优化指南
- 学习Javascript闭包(Closure)
- Android 谈谈Handler那些事
- GYM 100827 A.Runes(水~)
- 条码读取控件Dynamsoft Barcode Reader 5.0发布丨附下载
- Win下必备神器之Cmder
- 卷积神经网络 cnnff.m程序 中的前向传播算法 数据 分步解析
- 委托理解之示例
- C语言字符串读取函数 gets()与fgets()
- CountDownLatch使用解析
- 【SpringMVC】配置<context:component-scan>
- Android的布局管理器(下篇)-GridLayout、AbsoluteLayout、android单位转换