PKU 3959 Alignment of Code

http://poj.org/problem?id=3959
単語のインデントを揃えて出力しろというような問題。

入力が多いので、遅い入出力だとTLEするみたいです。

vector<string> out[1000];
int sz[1000];

main(){
  ios::sync_with_stdio(0);
  string in;
  int line=0;
  for(;getline(cin,in);++line){
    stringstream ss(in);
    string wo;
    while(ss>>wo){
      out[line].pb(wo);
      sz[SZ(out[line])]=max(sz[SZ(out[line])],SZ(wo));
    }
  }
  for(int i=1;i<1000;++i)sz[i]+=sz[i-1]+1;
  rep(i,line){
    int tlen=0;
    rep(j,SZ(out[i])){
      while(tlen<sz[j]){
        cout<<' ';
        ++tlen;
      }
      cout<<out[i][j];
      tlen+=SZ(out[i][j]);
    }
    cout<<endl;
  }
}