社区讨论
40pts求助(悬赏一个关注)
B4319[语言月赛 202504] 礼堂预约参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mkgmznoy
- 此快照首次捕获于
- 2026/01/16 16:48 2 个月前
- 此快照最后确认于
- 2026/01/18 19:55 2 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int d[1100000][4],a[5100],b[5100],c[5100],n,x,p1,p2;
char s,t;
int date(int x)
{
x++;
int y,m,d;
d=x%100;
m=x/100%100;
y=2000+x/10000;
int t;
if(m==2)//2月特判
{
if(y%4==0&&y%100!=0||y%400==0)
{
t=29;
}
else
{
t=28;
}
}
else
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{
t=31;
}
else
{
t=30;
}
}
x=y*10000+m*100+d;
x%=10000000;
return x;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>s>>x>>t;
if(s=='O')
{
a[i]=3;
}
else if(s=='C')
{
a[i]=2;
}
else if(s=='P')
{
a[i]=1;
}
if(t=='M')
{
c[i]=1;
}
if(t=='A')
{
c[i]=2;
}
if(t=='E')
{
c[i]=3;
}
b[i]=x%10000000;
bool f=false;
p1=i;
p2=0;
while(f==false)
{
if(d[b[p1]][c[p1]]==0)
{
d[b[p1]][c[p1]]=p1;
f=true;
}
else
{
p2=d[b[p1]][c[p1]];
if(a[p1]>a[p2]||(a[p1]==a[p2]&&p1<p2))
{
d[b[p1]][c[p1]]=p1;
p1=p2;
}
b[p1]=date(b[p1]);
}
}
}
for(int i=1;i<=n;i++)
{
cout<<b[i]+20000000<<"\n";
}
return 0;
}
悬赏一个关注
回复
共 1 条回复,欢迎继续交流。
正在加载回复...