蒟蒻ABC求助(玄关)
  • 板块灌水区
  • 楼主ZSYhaouuan
  • 当前回复10
  • 已保存回复11
  • 发布时间2024/11/9 21:36
  • 上次更新2024/11/10 08:08:09
查看原帖
蒟蒻ABC求助(玄关)
1385996
ZSYhaouuan楼主2024/11/9 21:36

C题,就WA了五个啊啊啊!!

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node{
	ll a,x;
}num[1000000+10];
bool cmp(node a,node b){
	return a.a<b.a;
}
int main(){
	ll n,m,ans=0;
	cin>>n>>m;
	for(ll i=1;i<=m;i++) cin>>num[i].a;
	for(ll i=1;i<=m;i++){
		cin>>num[i].x;
		ans+=num[i].x*((num[i].x)-1)*0.5;
	} 
	sort(num+1,num+m+1,cmp);
	//for(ll i=1;i<=m;i++) cout<<num[i].a<<" ";
	ll sum=0;
	for(ll i=2;i<=m;i++){
		sum+=num[i].a-num[i-1].a-1;
		sum-=num[i-1].x-1;
		//cout<<"<<<sum>>>"<<sum<<"\n";
		if(sum>0){
			cout<<-1;
			return 0;
		}
		ans+=-1*sum*num[i].x;
	}
	if(num[m].x-1==n-num[m].a+sum){
		cout<<ans;
	}else{
		cout<<-1;
	}
	return 0;
}

码风可能不太好

2024/11/9 21:36
加载中...