⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2466252_re.cc

📁 做的POJ的一些题目
💻 CC
字号:
#include <iostream>
#include <string>
using namespace std;

typedef struct student{
    string useid;
    int pid;
};

string pname[100];
student stu[10000];
string temp="";
int counts[100][2];
int c=0;
bool del[100]={0};

int com(int j)
{
    for(int i=0;i<j;i++)
    {
      if(stu[j].useid==stu[i].useid)
       {
          if(stu[j].pid!=stu[i].pid)
          {
			 if(counts[stu[i].pid][0]!=0 && !del[i])
			 {
			    counts[stu[i].pid][0]-=1;
			    del[i]=1;
			 }
			 return 0;
          }
          else
          {
			 return 0;
          }
        }
     }
    return 1;
}

void orders()
{  int temp=0,order=0;
   for(int i=0;i<c;i++)
   {
      for(int j=i;j<c;j++)
      {
        if(counts[i][0] < counts[j][0])
         {
            temp=counts[i][0];
            order=counts[i][1];
            counts[i][0]=counts[j][0];
            counts[i][1]=counts[j][1];
            counts[j][0]=temp;
            counts[j][1]=order;
         }
		else if(counts[i][0] == counts[j][0])
		{
		  if(pname[counts[i][1]] > pname[counts[j][1]])
		  {
			temp=counts[i][0];
            order=counts[i][1];
            counts[i][0]=counts[j][0];
            counts[i][1]=counts[j][1];
            counts[j][0]=temp;
            counts[j][1]=order;
		  }
		}
      }      
   }
}

void output()
{
	orders();
   for(int i=0;i<c;i++)
     cout<<pname[counts[i][1]]<<" "<<counts[i][0]<<endl;
}

int main()
{
    int i,j;
	c=0;
    getline(cin,temp);
    while(temp[0]!='0')
    {
       i=-1;
       j=-1;
	    memset(counts,0,4*200);
       while(temp[0]!='1')
       {
         
          if(temp[0]<'a')
          { 
             i++; 
             c++;
             pname[i]=temp;
			 counts[i][0]=0;
             counts[i][1]=i;
             getline(cin,temp);

          }
          else
          {  
             j++;
             stu[j].useid=temp;
             stu[j].pid = i;
             if(!com(j))
               j--;
             else
             {
                counts[i][0]+=1;
                counts[i][1]=i;
             }
             getline(cin,temp);
          }
       }
        output();
	   memset(counts,0,4*200);
      for(i=0;i<100;i++)
	   {
	     pname[i]="";
	   }
       for(i=0;i<=j;i++)
	   {
	      stu[i].pid=0;
		  stu[i].useid="";
	   }
       for(i=0;i<100;i++)
	   {
	     del[i]=0;
	   }
	   c=0;
       getline(cin,temp);
    } 
    return 0;
}

⌨️ 快捷键说明

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