样例没过,求助
  • 板块CF371D Vessels
  • 楼主sounds
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/17 17:14
  • 上次更新2024/3/17 19:33:31
查看原帖
样例没过,求助
677074
sounds楼主2024/3/17 17:14

蒟蒻思路大致为链表,样例没过请求大佬帮助

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=2e5+5;
map<int,int> mp;
struct node{
	int next,data;
	node(int _next=-1,int _data=-1){
		next=_next;
		data=_data;
	}
}a[maxn];
int tot,n,m,h,t,b[maxn],c;
void init(){
	a[0]=node(-1,-1);
	tot++;
}
void add_back(int node_id,int z){
	int new_id=tot;
	tot++;
	a[new_id]=node(a[node_id].next,z);
	a[node_id].next=new_id;
	mp[z]=a[node_id].next;
}
void print(int i){
	cout<<a[i].data<<'\n';
}
void water(int i,int x,int y){
	a[i].data+=x;
	if(a[i].data>=mp[i]){
		a[y-1].next=a[i].next;
		water(i+1,a[i].data-mp[i],y);
		a[i].data=mp[i];
	}
	return ;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>b[i];
		mp[i]=b[i];
		add_back(i+1,0);
	}
	cin>>m;
	for(int i=1;i<=m;++i){
		cin>>c;
		if(c==1){
			cin>>h>>t;
			water(h,t,h);
		}
		else{
			cin>>h;
			print(h);
		}
	}
	return 0; 
}

样例1输入: 2 5 10 6 1 1 4 2 1 1 2 5 1 1 4 2 1 2 2

样例1输出: 4 5 8

我的输出:4 5 7

样例2输入:3 5 10 8 6 1 1 12 2 2 1 1 6 1 3 2 2 2 2 3

样例2输出:7 10 5

我的输出:7 10 4

请求大佬帮助,谢谢!

2024/3/17 17:14
加载中...