ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#194001 | #53. eval | one_zero_three_zero | 90 | 65ms | 1256kb | C++11 | 1.6kb | 2023-10-15 08:47:19 | 2023-10-15 08:47:21 |
answer
#include<bits/stdc++.h>
using namespace std;
string s;
map<char,long long> f,big;
void out(){
map<char,long long> :: iterator it;
for(it = f.begin();it != f.end();it ++){
if(it->second == 0) continue;
printf("%c=",it->first);
if(it->second >= 1000000000LL || big[it->first]){
printf("...%09lld\n",it->second % 1000000000LL);
}else{
printf("%d\n",it->second);
}
}
}
long long getnum(char ch){
if(ch >= '0' && ch <= '9'){
return ch - 48;
}else{
if(f[ch] >= 1000000000LL){
big[ch] = 1;
f[ch] %= 1000000000LL;
}
return f[ch];
}
}
void operate(int pos){
if(s.find("for",pos) == pos){
// cout << s.find(")",pos) << "[p][]\n";
int nxt = s.find(")",pos) + 1;
char t = s[pos + 4];
long long be = getnum(s[pos + 6]);
long long en = getnum(s[pos + 8]);
for(long long i = be;i <= en;i ++){
f[t] = i;
operate(nxt);
}
return;
}
char t1 = s[pos];
if(s[pos + 1] == '='){
char t2 = s[pos + 2];
f[t1] = getnum(t2);
}else{
char t2 = s[pos + 3];
f[t1] += getnum(t2);
}
if(f[t1] >= 1000000000LL){
big[t1] = 1;
f[t1] %= 1000000000LL;
}
}
int main(){
#ifndef ONLINE_JUDGE
freopen("../data.in","r",stdin);
freopen("../data.out","w",stdout);
#endif
while(cin >> s){
operate(0);
}
out();
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 1228kb
input:
O=1
output:
O=1
result:
ok single line: 'O=1'
Test #2:
score: 10
Accepted
time: 0ms
memory: 1224kb
input:
C=6 B=B A=3 B=A A=0 C=C B=C C=6 B=B A=B Z=9 Y=0 I=J J=K K=L L=A L=3 A=L B=A B=B C=B C=C B=C C=0 A=B ...
output:
A=3 B=3 I=3 J=3 K=3 L=3 Z=9
result:
ok 7 lines
Test #3:
score: 10
Accepted
time: 0ms
memory: 1224kb
input:
X+=9
output:
X=9
result:
ok single line: 'X=9'
Test #4:
score: 10
Accepted
time: 0ms
memory: 1228kb
input:
C=6 B+=B A=3 B=A A=0 C=C B=C C=6 B=B A+=B Z=9 Y+=0 I+=J J+=K K=L L=A L=3 A=L B+=A B+=B C+=B C+=C B+=...
output:
A=405 B=3234 C=1620 I=3 J=3 K=6 L=3 Z=9
result:
ok 8 lines
Test #5:
score: 10
Accepted
time: 1ms
memory: 1240kb
input:
for(I,A,6)S+=I
output:
I=6 S=21
result:
ok 2 lines
Test #6:
score: 10
Accepted
time: 3ms
memory: 1240kb
input:
for(I,A,6)S+=I A=3 for(I,A,6)S+=I for(I,A,A)S+=I for(I,A,6)T=9 A=1 B=0 for(J,0,9)B+=A A=B B=0 for(J,...
output:
A=10000 B=10000 I=6 J=10000 K=10000 L=10000 S=42 T=9 X=150025001 Y=10001 Z=50005000
result:
ok 11 lines
Test #7:
score: 10
Accepted
time: 5ms
memory: 1244kb
input:
for(A,0,9)for(B,0,A)for(C,B,A)for(D,B,C)for(E,D,C)for(F,D,E)for(G,F,E)for(H,F,G)for(I,H,G)Z+=I
output:
A=9 B=9 C=9 D=9 E=9 F=9 G=9 H=9 I=9 Z=218790
result:
ok 10 lines
Test #8:
score: 10
Accepted
time: 21ms
memory: 1240kb
input:
for(A,0,9)for(B,0,A)for(C,B,A)for(D,B,C)for(E,D,C)for(F,D,E)for(G,F,E)for(H,F,G)for(I,H,G)Z+=1 for(A...
output:
A=9 B=9 C=9 D=9 E=9 F=9 G=9 H=9 I=9 X=9 Y=218790 Z=48620
result:
ok 12 lines
Test #9:
score: 10
Accepted
time: 8ms
memory: 1240kb
input:
for(A,3,7)for(B,2,A)for(C,B,8)for(D,1,C)for(E,D,C)for(F,D,9)for(G,0,E)Z+=G
output:
A=7 B=7 C=8 D=8 E=8 F=9 G=8 Z=214641
result:
ok 8 lines
Test #10:
score: 0
Wrong Answer
time: 27ms
memory: 1256kb
input:
Z+=1 for(I,0,9)for(J,I,9)for(K,I,J)Z+=Z I=0 J=0 K=0 A=1 for(X,0,9)B+=A for(X,0,9)C+=B for(X,0,9)D+=C...
output:
A=1 B=10 C=100 D=1000 E=10000 F=100000 G=1000000 H=10000000 I=100000000 P=900000 Q=900900 R=99999990...
result:
wrong answer 10th lines differ - expected: 'J=...000000000', found: 'P=900000'