Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <string>
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- #include <cstdio>
- #include <cstdlib>
- #include <fstream>
- #include <map>
- #include <set>
- using namespace std;
- #define sz(x) int((x).size())
- #define FOR(i,a,b) for(int (i) = (a); (i) <= (b); ++(i))
- #define ROF(i,a,b) for(int (i) = (a); (i) >= (b); --(i))
- #define rep(i,n) for (int (i) = 0; (i) < (n); ++(i))
- #define fe(i,a) for (int (i) = 0; (i) < int((a).size()); ++(i))
- #define C(a) memset((a),0,sizeof(a))
- #define inf 1000000000
- #define pb push_back
- #define ppb pop_back
- #define all(c) (c).begin(), (c).end()
- #define pi 2*acos(0.0)
- #define sqr(a) (a)*(a)
- #define mp(a,b) make_pair((a), (b))
- #define X first
- #define Y second
- typedef vector<int> vint;
- typedef long long ll;
- typedef pair<int, int> pii;
- class DengklekMakingChains
- {
- public:
- int maxBeauty( vector <string> a ){
- int i=0;
- int ans=0;
- while(i<sz(a)){
- if(a[i][0]!='.' && a[i][1]!='.' && a[i][2]!='.'){
- ans+=a[i][0]-'0'+a[i][1]-'0'+a[i][2]-'0';
- a.erase(a.begin()+i);
- }else i++;
- }
- int g,h,mx=0,uru=0;
- rep(i,sz(a)){
- if(a[i][0]=='.')
- if(a[i][1]!='.')
- if(a[i][2]=='.'){
- mx=max(mx,a[i][1]-'0');
- a.erase(a.begin()+i);
- i--;
- }
- }
- uru=mx;
- mx=0;
- rep(i,sz(a))
- rep(j,sz(a))if(i!=j && a[i][2]!='.' && a[j][0]!='.'){
- g=a[i][2]-'0';
- if(a[i][1]!='.')g+=a[i][1]-'0';
- h=a[j][0]-'0';
- if(a[j][1]!='.')h+=a[j][1]-'0';
- if(g+h>mx){mx=g+h;}
- }
- return max(uru,mx+ans);
- }
- };
Add Comment
Please, Sign In to add comment