How do I reset divided pads w/o inserting brank ps page

I have a problem in getting rid of additional brank page when I put a single pad page in postscript after a divided pad page.
Following example ends up with 3 postscript page with one unnecessary brank page in the page 2.

Int_t test(){

TF1 * f = new TF1(“f”,“sin(x)”,-10,10);

TCanvas *c = new TCanvas(“c”,"",1);
TPostScript *ps = new TPostScript(“test.ps”,112);
ps->NewPage();

c->Divide(2,2);
c->cd(1) ; f->Draw(); c->Update();
c->cd(2) ; f->Draw(); c->Update();
c->cd(3) ; f->Draw(); c->Update();
c->cd(4) ; f->Draw(); c->Update();
c->Clear() ;

f->Draw(); c->Update();

ps->Close();

return 0;

}

void test()
{
   TF1 * f = new TF1("f","sin(x)",-10,10);
   TCanvas *c = new TCanvas("c","",1);
   c->Divide(2,2);
   c->cd(1) ; f->Draw(); c->Update();
   c->cd(2) ; f->Draw(); c->Update();
   c->cd(3) ; f->Draw(); c->Update();
   c->cd(4) ; f->Draw(); c->Update();
   c->Print("test.ps(","ps");
   c->Clear();
   f->Draw(); c->Update();
   c->Print("test.ps)","ps");
}