Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- ifstream in("domino.in");
- ofstream out("domino.out");
- bool mic(string s,string r)
- {
- if(s.size()<r.size())
- return 1;
- if(s.size()>r.size())
- return 0;
- for(int i=0;i<s.size();i++)
- {
- if(s[i]<r[i])
- return 1;
- if(s[i]>r[i])
- return 0;
- }
- return 1;
- }
- int main()
- {
- vector<string> v={"0"};
- string s,r;
- long long n,t,x;
- in>>t>>n;
- if(t==1)
- for(int i=1;i<=n;i++)
- {
- in>>x;
- out<<x*(x+1)*(x+2)/2<<" ";
- }
- else
- {
- for(int i=1;i<=n;i++)
- {
- in>>x;
- s+=to_string(x);
- }
- int ok=0;
- while(s.size())
- {
- r="";
- if(!ok)
- {
- while(s[0]=='0')
- s.erase(s.begin()+0);
- while(mic(r,v.back()) && s.size())
- r+=s[0],s.erase(s.begin()+0);
- if(!mic(r,v.back()))
- v.push_back(r);
- ok=1;
- }
- else
- {
- while(s.back()=='0')
- s.pop_back();
- while(mic(r,v.back()) && s.size())
- r+=s.back(),s.pop_back();
- if(!mic(r,v.back()))
- v.push_back(r);
- ok=0;
- }
- }
- for(int i=1;i<v.size();i++)
- out<<v[i]<<" ";
- }
- }
Add Comment
Please, Sign In to add comment