Submission #393536

# Submission time Handle Problem Language Result Execution time Memory
393536 2021-04-23T19:12:52 Z gouravkhunger Garage (IOI09_garage) C++14
100 / 100
2 ms 460 KB
#include <bits/stdc++.h>
using namespace std;

#define int long long

typedef vector<int> vi;
#define FOR(i, a, b) for (int i=a; i<=b; i++)

#define FIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

signed main() {
	FIO;

    //start here
    
    int n, m, x, ans = 0;
    cin>>n>>m;
    
    vi slot(n), weight(m);
    bool occ[n];
    queue<int> waiting;
    map<int, int> where;

	FOR(i, 0, n-1) occ[i] = false;
	
	int mn = 0;

    FOR(i, 0, n-1) cin>>slot[i];
    FOR(i, 0, m-1) cin>>weight[i];
    
    m*=2;
    while(m--){
    	cin>>x;
    	
    	if(x>0){
    		x--;
    		waiting.push(x);
    	} else {    		
    		x = abs(x);
    		x--;
    		
    		occ[where[x]] = false;
    		where[x] = -1;
    	}
    	
   		FOR(i, 0, n-1) {
   			if(!occ[i]) {
   				mn = i;
   				break;
   			} else mn = INT_MAX;
		}
   		
    	if(!waiting.empty()){
    		if(mn == INT_MAX) continue;
    		int add = (slot[mn]*weight[waiting.front()]);
	   		ans+=add;
    		
    		where[waiting.front()] = mn;
    		
    		occ[mn] = true;
    		waiting.pop();
    	}
    	
    }
    
    cout<<ans;

    //end here

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
12 Correct 1 ms 332 KB Output is correct
13 Correct 1 ms 332 KB Output is correct
14 Correct 1 ms 332 KB Output is correct
15 Correct 1 ms 332 KB Output is correct
16 Correct 2 ms 332 KB Output is correct
17 Correct 2 ms 332 KB Output is correct
18 Correct 2 ms 460 KB Output is correct
19 Correct 2 ms 460 KB Output is correct
20 Correct 2 ms 460 KB Output is correct