01/10/2018, 09:31
Xin cách khắc phục "time limit exceeded" trên SPOJ
link đề: http://www.spoj.com/problems/TOANDFRO/
code của mình;
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int col;
cin>>col;
cin.ignore(1);
while(col)
{
char s[300];
cin.get(s,300);
int row = strlen(s)/col;
int i,j,k=0;
char matrix_string[20][20];
for(i=0; i<row; i++)
{
if(i%2)
{ for(j=col-1; j>=0; j--)
matrix_string[i][j]= s[k++];}
else
{
for(j=0; j<col; j++)
matrix_string[i][j]=s[k++];}
}
for(j=0; j<col; j++)
{ for(i=0; i<row; i++)
cout<< matrix_string[i][j];}
cout<<endl;
cin>>col;
}
return 0;
}
Bài liên quan
Bạn thử cách khác không dùng đến mảng hai chiều xem sao
Có lẽ nên đổi qua quản lý bằng string thì tốt hơn. Giảm số vòng for lại
Giải thuật mới như thế này, cũng gần tương tự như của bạn thôi
@.@ Vì đã lâu không đụng đến C++ nên khá ngại sửa code, nên chỉ đóng góp ý tưởng vậy thôi. Có thể tham khảo code python.