Submission #1305979

#TimeUsernameProblemLanguageResultExecution timeMemory
1305979neonglitchGarage (IOI09_garage)C++20
100 / 100
2 ms584 KiB
#include <iostream>
#include <set>
#include <queue>
using namespace std;
#define int long long
const int N=3e3+10;
int r[N],w[N],tk[N];
set<int> rem;
main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		
		{
			cin>>r[i];
			rem.insert(i);
		}
	for(int i=1;i<=m;i++)
	{
		cin>>w[i];
	}
	queue<int> lst;
	int ans=0;
	for(int i=0;i<2*m;i++)
	{
		int x;
		cin>>x;
		if(x>0)
		{
			if(rem.size()>0)
			{
				auto it=*begin(rem);
				rem.erase(begin(rem));
				tk[x]=it;
				ans+=r[it]*w[x];
			}
			else{
				lst.push(x);
			}
		}
		else{
			x=-x;
			rem.insert(tk[x]);
			while(lst.size()>0 and rem.size()>0)
			{
				int y=lst.front();
				lst.pop();
				auto it=*begin(rem);
				rem.erase(begin(rem));
				ans+=r[it]*w[y];
				tk[y]=it;
			}
		}
	}
	cout<<ans<<endl;
}

Compilation message (stderr)

garage.cpp:9:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    9 | main()
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...