zp2243.cpp

来自「浙江大学acm在线判题器代码集。 本人在浙大acm判题器上的所有代码(心血) 」· C++ 代码 · 共 74 行

CPP
74
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
#include <iostream>
#include <string>
using namespace std;

struct typ
{
   char t[31];
} st[50010];

int a[50010];

void findit(int p, int q)
{
   if (p<q)
   {
      int i,mx=0,r=0;
      for (i=p;i<q;i++)
         if (a[i]>mx)
         {
            mx=a[i];
            r=i;
         }
      if (r>p)
      {
         cout<<'(';
         findit(p,r);
         cout<<')';
      }
      cout<<st[r].t<<'/'<<a[r];
      if (r<q-1)
      {
         cout<<'(';
         findit(r+1,q);
         cout<<')';
      }
   }
}
int main(int argc, char* argv[])
{
   int n,i,s;
   char ch;
   cin>>n;
   while (n)
   {
      for (i=0;i<n;i++)
      {
         cin>>ch;
         s=0;
         while (ch!='/')
         {
            st[i].t[s++]=ch;
            cin>>ch;
         }
         st[i].t[s]=NULL;
         cin>>a[i];
      }
      cout<<'(';
      findit(0,n);
      cout<<')';
      cout<<endl;
      cin>>n;
   }
   return 0;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?