RT,本题有一个奇怪的地方,while输入的时候用cin可以AC用scanf却TLE,请问大佬们这是为什么QwQ
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int n,f[N];
struct work
{
int p,day;
}a[N];
int find(int x)
{
if(x==f[x]) return x;
return f[x]=find(f[x]);
}
int ans;
bool cmp(work a,work b)
{
return a.p>b.p;
}
int main()
{
while(cin>>n)//这里写scanf("%d",&n)!=EOF会TLE,而且好像还会多输出一些东西
{
ans=0;
int maxday=0;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i].p,&a[i].day);
maxday=max(maxday,a[i].day);
}
for(int i=1;i<=maxday;i++){
f[i]=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
{
int rest=find(a[i].day);
if(rest>0){
f[rest]=rest-1;
ans+=a[i].p;
}
}
printf("%d\n",ans);
}
return 0;
}