记录编号 |
199792 |
评测结果 |
EEEEEEEEEE |
题目名称 |
学生成绩管理系统 |
最终得分 |
0 |
用户昵称 |
NVIDIA |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
1.828 s |
提交时间 |
2015-10-27 15:55:00 |
内存使用 |
2.43 MiB |
显示代码纯文本
#include<cstdio>
#include<cstdlib>
#include<iomanip>
#include<cctype>
#include<queue>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
int w[2013];
using namespace std;
struct node
{
int p,q;
node *next;
};
int main()
{
int i,n,m,c,s,x,j,k,l,i1,i2;
node *head,*a,*b,*e;
freopen("linet.in","r",stdin);
freopen("linet.out","w",stdout);
head=(node *)malloc(sizeof(node));
head->next=NULL;
head->p=head->q=0;
a=head;
scanf("%d",&n);
for (i=0;i<n;i++)
{
b=(node *)malloc(sizeof(node));
b->next=NULL;
scanf("%d%d",&b->p,&b->q);
w[b->p]=1;
a->next=b;
a=b;
}
scanf("%d",&m);
for (i=0;i<m;i++)
{
scanf("%d",&c);
if (c==1)
{
scanf("%d",&s);
if (s==0)
{
printf("%d\n",n);
a=head->next;
while (a!=NULL)
{printf("%d %d\n",a->p,a->q);a=a->next;}
}
else
{
scanf("%d",&x);
if(w[x])
{
a=head->next;
while(a!=NULL)
{if (a->p==x)
{printf("%d %d\n",a->p,a->q);break;}
a=a->next;}
}
else printf("no\n");
}
}
if (c==2)
{
scanf("%d",&x);
for (i1=0;i1<x;i1++)
{
scanf("%d%d%d",&j,&k,&l);
if (n<2000)
{
if (w[k]==0) //重复?
{
b=(node *)malloc(sizeof(node));
b->next=NULL;
b->p=k;
b->q=l;
a=head;
for (i2=0;i2<j;i2++)
{
if (a==NULL)
{printf("out\n");break;}
a=a->next;
}
if (i2==j)
{
b->next=a->next;
a->next=b;
w[b->q]=1;
n++;
}
}
else {printf("dup\n");break;}
}
}
}
if (c==3)
{
scanf("%d",&s);
for (i1=0;i1<s;i1++)
{
scanf("%d",&x);
if (w[x]==1)
{
a=head->next;
while(a!=NULL)
if (a->next->p==x) {e=a->next;a->next=e->next;free(e);n--;break;}
else a=a->next;
}
else printf("error \n");
}
}
}
return 0;
}