#include <bits/stdc++.h> using namespace std; int n; string wy1,wy2; long long wyn; int pom, resz; string dodaj(string a,string b) { string wynik; if(b.length()>a.length()) { swap(a,b); } for(int i =a.length()-1;i>= (a.length()-b.length());i--) { pom = int(a[i]-'0') + int(b[i+b.length()-a.length()]-'0') + resz; resz = pom/10; pom = pom%10; wynik= char(pom+'0') + wynik; } for(int i =a.length()-b.length()-1;i>=0;i--) { pom = int(a[i]-'0')+ resz; resz = pom/10; pom = pom%10; wynik= char(pom + '0') + wynik; } if(resz>0) { wynik = char(resz+'0') + wynik; } return wynik; } int czy; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; cin>>wy1; for(int i =1;i<n;i++) { cin>>wy2; czy=0; if(wy2.length()<=wy1.length()) { for(int j = 0;j<wy2.length();j++) { if(wy2[j]>wy1[j]) { wyn+=wy1.length()-wy2.length(); for(int k = wy2.length();k<wy1.length();k++) { wy2+="0"; } czy =1; break; } else if(wy2[j]<wy1[j]) { wyn +=wy1.length()+1-wy2.length(); for(int k = wy2.length();k<=wy1.length();k++) { wy2+="0"; } czy=2; break; } } if(czy==0) { if(dodaj(wy1.substr(wy2.length()),"1").length()>wy1.substr(wy2.length()).length()) { wyn+=wy1.length()+1-wy2.length(); for(int k = wy2.length();k<=wy1.length();k++) { wy2+="0"; } } else { wyn+=wy1.length()-wy2.length(); for(int k = wy2.length();k<wy1.length();k++) { wy2+=wy1[k]; } } } } wy1=wy2; } cout<<wyn; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | #include <bits/stdc++.h> using namespace std; int n; string wy1,wy2; long long wyn; int pom, resz; string dodaj(string a,string b) { string wynik; if(b.length()>a.length()) { swap(a,b); } for(int i =a.length()-1;i>= (a.length()-b.length());i--) { pom = int(a[i]-'0') + int(b[i+b.length()-a.length()]-'0') + resz; resz = pom/10; pom = pom%10; wynik= char(pom+'0') + wynik; } for(int i =a.length()-b.length()-1;i>=0;i--) { pom = int(a[i]-'0')+ resz; resz = pom/10; pom = pom%10; wynik= char(pom + '0') + wynik; } if(resz>0) { wynik = char(resz+'0') + wynik; } return wynik; } int czy; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; cin>>wy1; for(int i =1;i<n;i++) { cin>>wy2; czy=0; if(wy2.length()<=wy1.length()) { for(int j = 0;j<wy2.length();j++) { if(wy2[j]>wy1[j]) { wyn+=wy1.length()-wy2.length(); for(int k = wy2.length();k<wy1.length();k++) { wy2+="0"; } czy =1; break; } else if(wy2[j]<wy1[j]) { wyn +=wy1.length()+1-wy2.length(); for(int k = wy2.length();k<=wy1.length();k++) { wy2+="0"; } czy=2; break; } } if(czy==0) { if(dodaj(wy1.substr(wy2.length()),"1").length()>wy1.substr(wy2.length()).length()) { wyn+=wy1.length()+1-wy2.length(); for(int k = wy2.length();k<=wy1.length();k++) { wy2+="0"; } } else { wyn+=wy1.length()-wy2.length(); for(int k = wy2.length();k<wy1.length();k++) { wy2+=wy1[k]; } } } } wy1=wy2; } cout<<wyn; return 0; } |