Submission #2337434
Source Code Expand
#include<bits/stdc++.h> using namespace std; const int mod = 1e9 + 7; int expr(); string S; int idx; int number() { int ret = 0; while(idx < S.size() && isdigit(S[idx])) { ret = ret * 10 + S[idx++] - '0'; } return (ret); } int term() { if(isdigit(S[idx])) return (number()); idx += 2; auto ret = expr(); ret = 1LL * ret * ret % mod; idx++; return (ret); } int expr() { auto ret = term(); int buff = idx; while(buff + 1 < S.size() && S[buff] == '>' && S[buff + 1] == '>') { buff += 2; if(buff >= S.size() || S[buff] == '>') break; idx += 2; auto get = term(); for(int i = 0; i < get && ret > 0; i++) ret >>= 1; buff = idx; } return (ret); } int main() { string T; while(getline(cin, T), T != "#") { idx = 0; S = ""; for(int i = 0; i < T.size(); i++) if(T[i] != ' ') S += T[i]; cout << expr() << endl; } }
Submission Info
Submission Time | |
---|---|
Task | F - Shipura |
User | ei13333 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 953 Byte |
Status | AC |
Exec Time | 78 ms |
Memory | 2688 KB |
Judge Result
Set Name | all | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
all | Merged |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
Merged | AC | 78 ms | 2688 KB |