社区讨论
#6过不了的可以进来看看是不是我这个问题
CF2AWinner参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo8gl3qz
- 此快照首次捕获于
- 2023/10/27 18:16 2 年前
- 此快照最后确认于
- 2023/10/27 18:16 2 年前
我真的服了这个老六题目说好的n<=1000,我调了半天wa,把数组扩到10000就过了,我真的不知道为什么```cpp
#include<bits/stdc++.h>
using namespace std;
int tot=0,c[100001]={0},d[100001]={0},maxx=-999999999,maxname,maxs=0,e[100001]={0};
string s[1000001];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
string s1;
int m;
cin>>s1>>m;
bool b=0;
for(int j=1;j<=tot;j++)
{
if(s[j]==s1)
{
b=1;
c[j]+=m;
if(m>0&&e[j]<c[j])
{
d[j]=i;
e[j]=c[j];
}
break;
}
}
if(b==0)
{
s[++tot]=s1;
c[tot]+=m;
d[tot]=i;
e[tot]=c[tot];
}
}
for(int i=1;i<=tot;i++)
{
if(c[i]>maxx)
{
maxx=c[i];
maxname=i;
maxs=d[i];
}
else if(c[i]==maxx)
{
if(d[i]<maxs)
{
maxx=c[i];
maxname=i;
maxs=d[i];
}
}
}
cout<<s[maxname];
}
CPP回复
共 2 条回复,欢迎继续交流。
正在加载回复...