Job from codeforces.com 71a

Why, when reading, I get the wrong result.

3 njfngnrurunrgunrunvurn jfvnjfdnvjdbfvsbdubruvbubvkdb ksdnvidnviudbvibd 

Conclusion:

 21n j27b k15d 

The correct answer should be:

 n20n j27b k15d 

My decision:

 int main (){ int n; char c,c1; cin>>n; for (int i = 1; i<=n;i++){ char c2; int k=0; c1=getchar(); string str; while ((c=getchar())>' '){ k++; c2=c; str+=c; } if (k+1<=10){ cout<<c1<<str<<endl; } else { if (c1==0){ cout<<1; cout<<c2<<k-1<<c2<<endl; } else { // cout<<c1<<endl; cout<<c1<<k-1<<c2<<endl; } } } } 

    1 answer 1

    Well, you have a solution .. O_o

     #include <iostream> using namespace std; int main() { string line; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> line; if (line.length() >= 10) { // Выводим первый элемент, потом длину строки на два символа меньше и последний символ cout << line[0] << line.length() - 2 << line[line.length() - 1] << endl; } else cout << line << endl; } } return 0; }