Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //UVa Q11258
- #include <bits/stdc++.h>
- using namespace std;
- #define int long long
- int dp[201];
- int32_t main(){
- int t;
- cin >> t;
- while(t--){
- memset(dp, 0, sizeof(dp));
- string s;
- cin >> s;
- dp[0] = s[0]-'0';
- for(unsigned i = 1; i < s.size(); ++i){
- int num = 0;
- for(int j = i, k = 1; j >= 0; --j, k *= 10){
- num += (s[j] - '0') * k;
- //cout << num << endl;
- if(num > INT_MAX)break;
- if(j > 0)dp[i] = max(dp[i], dp[j-1]+num);
- else dp[i] = max(dp[i], num);
- //if(j > 0)cout<<dp[j] << '+' << num << endl;
- }
- }
- cout << dp[s.size()-1] << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement