求助:为什么我会RE#3
  • 板块学术版
  • 楼主AZYDLL
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/8/8 15:44
  • 上次更新2023/11/3 05:11:01
查看原帖
求助:为什么我会RE#3
881733
AZYDLL楼主2023/8/8 15:44

代码没有任何问题,测试点下载下来也能输出正确答案,但提交上去就是RE#3:

#include<iostream>
#include<algorithm>

namespace FastIO
{
	template<typename T> T read() {T ans=0;bool pd=1;char in=getchar();while(in<'0' || in>'9'){pd=in-'-';in=getchar();}while(in>='0' && in<='9'){ans=ans*10+in-'0';in=getchar();}return pd ? ans : -ans;}
	template<typename T> void write(T in) {if(in) write<T>(in/10),putchar(in%10+'0');}
	template<typename T> void print(T in,char a) {if(in==0) putchar('0');if(in<0) putchar('-'),in=-in;write<T>(in);putchar(a);}
}
using namespace FastIO;
using namespace std;

struct pc {int x,v;} in[50005];
bool cmp(pc a,pc b)
{return a.x<b.x;}
int main()
{
	int n=read<int>(),m=read<int>(),pt=0;
	long long ct=0;
	if(n==0 || m==0)
	{print<int>(ct,'\n');return 0;}
	for(register int i=0;i<m;i++)
	{in[i].x=read<int>(),in[i].v=read<int>();}
	sort(in,in+m,cmp);
	while(n>=in[pt].v)
	{
		n-=in[pt].v;
		ct+=in[pt].v*in[pt].x;
		pt++;
	}
	ct+=n*in[pt].x;
	print<int>(ct,'\n');
	return 0;
}

附:#3测试点:

输入:

2 1

10 2

输出:

20

2023/8/8 15:44
加载中...